פורסם 2007 באוקטובר 118 שנים שלום,רציתי לדעת כיצד אפשר לחשב ממוצע עם משתנה אחד בלבד...אין מערך ואי אפשר לעשות משתנה אחת של סכום ומשתנה אחד של מספר איברים...הנחת יסוד: הקלט הוא מספרים טבעיים.לפי מה שהבנתי אפשר לעשות את זה איכשהו עם מספרים ראשוניים.
פורסם 2007 באוקטובר 118 שנים נניח שקוראים למשתנה הזה: "$average".אתה לוקח את המספר הראשון ומכניס אותו ל $averageאח"כ אתה עובר מספר-מספר, ומפעיל עליו:$average = ($average + $number) / 2;כאשר $number זה כל פעם המספר הנוכחי בלולאה, כמובן.בסופו של דבר יתקבל הממוצע של כל המספרים.
פורסם 2007 באוקטובר 118 שנים נניח שקוראים למשתנה הזה: "$average".אתה לוקח את המספר הראשון ומכניס אותו ל $averageאח"כ אתה עובר מספר-מספר, ומפעיל עליו:$average = ($average + $number) / 2;כאשר $number זה כל פעם המספר הנוכחי בלולאה, כמובן.בסופו של דבר יתקבל הממוצע של כל המספרים.זה לא חישוב נכון.החישוב הזה נותן משקל גבוה יותר למספרים שמגיעים אחרוניםלדוגמא 100-> 100 -> 2לפי החישוב שלך יוצא 51כאשר הממוצע הוא 67.3[br]פורסם בתאריך: 1.10.2007 בשעה 22:13:46פתרון אפשרי:אם יודעים מה מספר האיברים המקסימלי ובגלל שיודעים שהקלט הוא מספרים טבעיים , ניתן להגדיר גודל מסויים שישמש כאינדקסלדוגמא עד 1000 איברים ניתן להוסיף עם כל איבר 0.001 ובסוף הלולאה לבדוק כמה איברים היו ע"י המספר שישנו מימין לנקודה העשרונית $ [left] $sum= ($sum+ $number+0.001) ;[/left]
פורסם 2007 באוקטובר 118 שנים לדעתי זו רמאות אתה בעצם ממציא לך כאן משתנה נוסף. (כמובן, יכול להיות שזו הייתה הכוונה של כותב החידה ובעצם אין פתרון אחר...)
פורסם 2007 באוקטובר 118 שנים באותה דרך אפשר לשחק עם הביטים.אם מדברים על מספר של 32 ביט, סביר להניח שהבודק לא יכניס יותר מ 256 מספרים או שסכומם יהייה גדול ממספר 24 ביט.
פורסם 2007 באוקטובר 118 שנים מחבר נניח שקוראים למשתנה הזה: "$average".אתה לוקח את המספר הראשון ומכניס אותו ל $averageאח"כ אתה עובר מספר-מספר, ומפעיל עליו:$average = ($average + $number) / 2;כאשר $number זה כל פעם המספר הנוכחי בלולאה, כמובן.בסופו של דבר יתקבל הממוצע של כל המספרים.כמו ש-cheeseman אמר, הפיתרון הזה לא נכון. אתה יכול לבדוק אותו על כל מספר שאתה רוצה, לדוגמא: 4,5,6.אני אסביר את החידה עוד פעם.עקרונית יש לך שני משתנים. אחד שהוא המספר הנקלט שכל פעם משתנה ואחד שבעזרתו אתה צריך להגיע לממוצע. המשתנה של המספר הנקלט חייב להכיל אך ורק את המספר הנקלט ע"י המשתמש ואסור לשנות אותו.
פורסם 2007 באוקטובר 118 שנים אתה יכול לשמור את כל המספרים בתוך מספר אחד ע"י שימוש במספר גדל(וכמובן שגם לפענח אותם לאחר מכן) http://en.wikipedia.org/wiki/G%C3%B6del_number העניין הוא שאני עדיין חושב שבשביל חישוב הממוצע עצמו צריך יותר ממשתנה אחד
פורסם 2007 באוקטובר 118 שנים מחבר אתה יכול לשמור את כל המספרים בתוך מספר אחד ע"י שימוש במספר גדל(וכמובן שגם לפענח אותם לאחר מכן) http://en.wikipedia.org/wiki/G%C3%B6del_number העניין הוא שאני עדיין חושב שבשביל חישוב הממוצע עצמו צריך יותר ממשתנה אחד תודה רבה זה בדיוק מה שחיפשתי! ואז כדי לפענח את המספר שמקבלים צריך לחלק בהתחלה ב-2, n פעמים עד שמתקבל מספר לא שלם. המספר הראשון בסדרה הוא n-1. חוזרים למספר השלם האחרון ומתחילים לחלק אותו במספר הראשוני הבא (3), שוב עד מגיעים למספר לא שלם וכן הלאה עד שמגלים את כל המספרים וניתן לחשב את הממוצע. המטרה הייתה לשמור את כל המידע במשתנה אחד ולא במערך או בשני משתנים.
פורסם 2007 באוקטובר 218 שנים הייתי בטוח שרשמתי כאן הודעה...בכל מקרה, זה יעבוד בתיאוריה. במציאות יש מספר סופי של ביטים שאתה יכול לשמור בהם מידע, ולכן הפתרון הזה לא יעבוד ברוב המקרים(תעשה ממוצע בין 64 ל 60 ותראה).בקשר לזה עם השבר - צריך לבדוק מה המגבלה של הFLOAT וDOUBLE בדיוק עבור סכום של מספיק מספרים, ומתי זה מפסיק לדייק באלפית.פתרון דומה(מאוד) לחזקות הוא להשתמש בבסיסים 2 ו- 3 בלבד, כאשר 3 עבור ספירת המספרים, ו- 2 עבור הסכום. אבל שוב, מספיק שהסכום יהייה גדול מ- 64 או 32(תלוי אם הגדרת LONG או INT, ותלוי במערכת עצמה).
פורסם 2007 באוקטובר 218 שנים מחבר הייתי בטוח שרשמתי כאן הודעה...בכל מקרה, זה יעבוד בתיאוריה. במציאות יש מספר סופי של ביטים שאתה יכול לשמור בהם מידע, ולכן הפתרון הזה לא יעבוד ברוב המקרים(תעשה ממוצע בין 64 ל 60 ותראה).בקשר לזה עם השבר - צריך לבדוק מה המגבלה של הFLOAT וDOUBLE בדיוק עבור סכום של מספיק מספרים, ומתי זה מפסיק לדייק באלפית.פתרון דומה(מאוד) לחזקות הוא להשתמש בבסיסים 2 ו- 3 בלבד, כאשר 3 עבור ספירת המספרים, ו- 2 עבור הסכום. אבל שוב, מספיק שהסכום יהייה גדול מ- 64 או 32(תלוי אם הגדרת LONG או INT, ותלוי במערכת עצמה).כן, מעשית הפיתרון עובד רק עבור מספר מצומצם מאוד של מספרים ובטווח של מספרים מאוד נמוכים.ד"א, האם ניתן ב-CPP לאכסן בצורה כלשהי ערך מספרי שלם בעל 20 ספרות בערך?
פורסם 2007 באוקטובר 218 שנים בעזרת DOUBLE אתה יכול לייצג עד 2^10 ספרות בערך(בייצוג בינארי). הבעיה היא הדיוק(לדוגמא, אתה יכול לייצג את המספר 4, אך לא את המספר 3).
פורסם 2007 באוקטובר 218 שנים מספר של 64 ביט יכול להכיל עד כ-20 ספרות.זה נתמך גם ע"י מעבדים של 32 ביט, באמצעות long long.
פורסם 2007 באוקטובר 218 שנים Actually, I just wrote a BigInteger class in cpp that lets you store and manipulate natural numbers as large as you want.
פורסם 2007 באוקטובר 218 שנים מחבר Actually, I just wrote a BigInteger class in cpp that lets you store and manipulate natural numbers as large as you want.אתה יכול בבקשה להעלות אותה?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.