ABA


"projecteuler"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11210 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11210
nimroder לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 25.9.09
8557 הודעות, 4 פידבק
   19:35   06.03.13   
אל הפורום  
  projecteuler  
 
   ראיתי את הכתובת בחתימה של zippo
http://projecteuler.net/

ממש ממש נחמד, אני וחבר מנסים כבר כמה שעות לפתור שאלה אחת מציקה...
חחח
המחשב לא מצליח להריץ לולאה כזו גדולה
שאלה 206

יש פה חברה שעשו פתרונות ואם כן איפה אתם וכמה?



                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אני חלש :/ כרגע ב 9 בלי דילוגים. מתקדם באיטיות רבה kutumaster  06.03.13 20:18 1
  בסוף הצלחנו, פשוט עשינו פלט אחוזים עד שהוא מסיים ומסתבר שזה תקע את המחשב nimroder 06.03.13 21:24 2
  אתם סתם פותרים שאלות באקראי? או שבאמת הגעתם ל-206? MrSus 06.03.13 21:53 3
     חחח סתם פתרנו אקראי אל תגזים nimroder 06.03.13 22:34 4
  נחמד מאד, הלכתי לישון אתמול בגלל זה ב3 בלילה :) עשיתי איזה 10 Net_Boy  07.03.13 22:41 5
  איזה כיף לשמוע שהחתימה שלי אשכרה שימושית :) Zippo  08.03.13 10:59 6

       
kutumaster 
חבר מתאריך 19.9.06
19325 הודעות
   20:18   06.03.13   
אל הפורום  
  1. אני חלש :/ כרגע ב 9 בלי דילוגים. מתקדם באיטיות רבה  
בתגובה להודעה מספר 0
 
  

בברכה,


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
nimroder לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 25.9.09
8557 הודעות, 4 פידבק
   21:24   06.03.13   
אל הפורום  
  2. בסוף הצלחנו, פשוט עשינו פלט אחוזים עד שהוא מסיים ומסתבר שזה תקע את המחשב  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MrSus
חבר מתאריך 8.5.09
1801 הודעות
   21:53   06.03.13   
אל הפורום  
  3. אתם סתם פותרים שאלות באקראי? או שבאמת הגעתם ל-206?  
בתגובה להודעה מספר 0
 
   אני פתרתי בנתיים 50 שאלות ראשונות... העפתי מבט פעם בשאלות האחרונות וזה נראה מפחיד... אמרתי נפתור לפי הסדר ומתי שנגיע לזה אולי יהיה לי קצת יותר ניסיון.

ד"א יש שם המון המון שאלות שנבנות על בסיס שאלות אחרות.. כלומר הם מציגים נושא שכבר הופיע בעבר, למרות שהם שוב פעם נותנים הגדרה וכאלה, אבל סביר להניח שבשאלות ישנות יותר הנושא הזה הופיע בצורה בסיסית יותר... הרבה שאלות שם נבנות בהדרגתיות.

אחלה אתר חוץ מזה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
nimroder לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 25.9.09
8557 הודעות, 4 פידבק
   22:34   06.03.13   
אל הפורום  
  4. חחח סתם פתרנו אקראי אל תגזים  
בתגובה להודעה מספר 3
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   22:41   07.03.13   
אל הפורום  
  5. נחמד מאד, הלכתי לישון אתמול בגלל זה ב3 בלילה :) עשיתי איזה 10  
בתגובה להודעה מספר 0
 
   זה ממכר, קשה להפסיק....


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Zippo 
חבר מתאריך 26.5.02
7921 הודעות
   10:59   08.03.13   
אל הפורום  
  6. איזה כיף לשמוע שהחתימה שלי אשכרה שימושית :)  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 11.03.13 בשעה 12:40 בברכה, Zippo
 
עריכה:
אחרי שפתחת לי את התיאבון, וניסיתי את הבעיה בעצמי, זה הרבה יותר פשוט ממה שחשבתי.
לא אתן לך פיתרון מלא, אבל הנה הרעיון הכללי:
המספר המקסימלי שיכול להיות המספר הריבועי הוא: 1929394959697989990
(ובעצם 19293949596979899-0-0 ע"פ הגיון שכבר הוסבר מקודם.)
המספר המינימלי הוא: 10203040506070809000.
אז אתה מחפש מספר שהוא בין השורש של 1929394959697989900 לשורש של 10203040506070809000.
אבל לא חייבים לבדוק כל מספר...
כמו שהוסבר כבר מקודם, על כל 100 מספרים, מספיק לבדוק 4. כל אלה שהם כפולות של 10, אבל לא כפולות של 4 או 25.
מפה, זה כבר ממש פשוט, ונפתר בערך ב-15 שורות קוד...
בהצלחה


לגבי השאלה, תצמצם אפשרויות בהגיון.
למשל, הספרה האחרונה היא 0, כלומר הריבוע מתחלק ב-10, כלומר יש גורמים ראשוניים 2 ו-5, אבל הם חייבים להיות גם בשורש, וכשמעלים בריבוע, אז יש כפול 2 מכל גורם, כלומר המספר הריבועי מתחלק ב-2 בריבוע וב-5 בריבוע, כלומר מתחלק ב-100, כלומר הספרה האחרונה הלא ידועה חייבת להיות 0.
והנה הורדת פי-10 את מספר האפשרויות לחיפוש.
אולי אפשר לצמצם ככה עוד כמה ספרות, אין לי עליי דף ונייר בשלוף, אבל תנסה לשחק עם המספרים ולצמצם את מרחב החיפוש.
בהצלחה!

עריכה:
לפי ההגיון הנ"ל, אפשר להגיע למסקנה, שהשורש של המספר המבוקש, לא רק שמתחלק ב-2 וגם ב-5, אלא אפילו שהוא לא מתחלק ב-4 או ב-25. (למה? תחשוב.. )
זה מאד מאד מצמצם את מרחב החיפוש שלך.
אתה מחפש רק שורשים שהם כפולות של 10, אבל לא מתחלקים ב-4 או 25.
מה גם שהשורש חייב להיות בן 9 ספרות, כשה-MSD הוא לפחות 3, אבל לא יותר מ-4.
(שוב, תנסה לחשוב למה...)
אם כך, כל המספרים בין 300000000 ל- 499999999 (ואפשר לצמצם אפילו יותר עם חישוב זהיר) שמתחלקים ב-10, אבל לא ב-4 או 25, סה"כ יש לך מרחב חיפוש של:
8000000 מספרים. 8 מיליון זה כבר מרחב חיפוש מספיק קטן כדי לפתור את השאלה בעזרת brute force.

מקווה שזה עוזר.
בהצלחה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net