|
||||
|
||||
אין לי שום מושג. בשביל לתת אומדן אני צריך להריץ את התוכנה על המחשב הנ''ל ועם האופטימיזציות הנ''ל על טווחים קטנים יחסית ולראות את קצב הגידול. |
|
||||
|
||||
סדר גודל? חצי שעה? יום? שבוע? |
|
||||
|
||||
שוב: אין לי מושג. המספר 100,000,000 הוא שרירותי למדי. דוגמה אחרת: בתוכנה שהייתי צריך להריץ ושזמן הריצה שלה הוא אקספוננציאלי "מאוד", הרצה עבור הפרמטר 15 לקחה כמה שניות, עבור 16 יום, עבור 17 חודש ועבור 18 המון זמן. אני לא יכול לתת הערכה לדבר כזה בלי לבדוק את קצב הריצה עבור פרמטרים יותר קטנים - אבל אחרי שעשיתי את זה, הצלחתי להעריך את זמן הריצה בדיוק לא רע. לפחות אני צריך בסיס כלשהו. |
|
||||
|
||||
חשבתי שיש לך קוד רץ, לא? ב5 דקות, לאן הגעת? אולי שווה לחשב את היחס: זמן ריצה פר ראשוני. |
|
||||
|
||||
הקוד שכתבתי פועל בשני שלבים: קודם מחשב את כל המערך, ורק אחר כך עובר עליו ומוצא את המספרים המתאימים. אני לא הדפסתי מונה רץ שאומר לאן כבר הגעתי כי זה מאט את הריצה (שהפסקתי בינתיים). |
|
||||
|
||||
בדיקה קצרה ב-pc די רגיל נתנה לי ב-102 שניות את כל הזוגות עד 100,000,000 (הזוג האחרון הוא 99,899,792 ו 93,837,808 סה"כ 467 זוגות אבל לא הורדתי כפילויות ולא הורדתי מספרים שהם הזוג של עצמם). |
|
||||
|
||||
איזו שפה ואיזה קומפיילר? |
|
||||
|
||||
שפת c++ (בעצם, לא ממש השתמשתתי ב++). הקומפיילר של מיקרוסופט. אגב, כשאני מסנן את הזוגות הכפולים ואת אלה שהם הזוג של עצמם, אני מקבל 231 זוגות, כשהאחרון הוא 97,041,735 ו-97,945,785. זה גם מוריד את הזמן ב-2 שניות. |
|
||||
|
||||
6 28 496 8,128 33,550,336 |
|
||||
|
||||
כל מספר הוא ידיד של עצמו ולכן צריך לסנן את התשובות האלה. |
|
||||
|
||||
מספרים מושלמים, כמו 6 (מספרים שסכום המחלקים שלהם שווה לעצמם). |
|
||||
|
||||
טוב, אני בספק אם הבעיה היא בקומפיילר (גם אני ב-++C). עד 10,000,000 הוא דווקא עושה את זה די מהר. כנראה שב-100,000,000 אני כבר מתחיל להרגיש את ההשפעה של הזכרון הוירטואלי. |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |