מחברת 4 - פרדוקס יום ההולדת

היי רציתי להבין את הכוונה במשימה:
" השתמשו בתוכנה שכתבתם כדי לחשב את הסיכויים עבור כיתות שבהן תלמיד אחד, ועד כיתות ישראליות ממוצעות שבהן 366 תלמידים"

כל בדיקה צריך להריץ על 10,000 כיתות מהגודל הזה? (אם כן - אפשר הערכת איכות ביצוע מבחינת כמה זמן זה אמור לקחת - שאדע אם יש / אפשר לשפר ביחס לתוצאה שלי)
ולכל גודל כיתה שונה להוציא פלט שונה?

מקפיץ :slight_smile:

כן, לא שינו באמצע את הגדרת גודל הכיתה - לגבי מספר כיתות של 10,000.
לגבי הערכת ביצוע - לוקח שנייה בערך למחשב להריץ את זה, הפלט יחסית מהיר

אני מצליח רק עד 4000 כיתות. מישהו יכול לעזור?

תבדוק שהקוד שלך יעיל מבחינת מבני נתונים (שאתה לא משתמש יותר מידי ברשימות ארוכות לדוגמא), או קורא לפונקציה קריאות חוזרות כמה פעמים

כותב פה מה עשיתי…

ספוילר?

עשיתי מילון של מילונים: המילון הראשי הוא כיתות, שהערך שלהן הוא מילונים של תלמידים ותאריכי יום ההולדת שלהם…

ברגע שאני מגיע לכיתות עם יותר מ30 תלמידים לוקח הרבה יותר משנייה להריץ 10,000 כיתות בגודל הזה

תחשוב למה שתרצה לשמור כל פעם תאריכי יום הולדת של כיתה שלמה?

כמו שאמרתי, תעבור על המבנה נתונים שלך - אולי רשימה ארוכה שאין בה צורך, אולי נתונים שאתה שומר שאין באמת צורך גם בהם

מה זאת אומרת? חייבים לעשות את זה

עכשיו גם אני נתקעתי עם זה…

למה שתשמור את כל הערכים של כל הכיתות?
ואם יש מיליון כיתות?
למה שלא תעבור מראש על כל כיתה ואז לא תצטרך לשמור את הנתונים של כל המיליון כיתות

אהה ברור שאני לא שומר 10000 כיתות, אני יוצר כיתה בודק אם יש בה תאריכים שווים וזורק אותה לפח. ככה 10000 איטרציות. הבעיה שעם כיתות גדולות של 360 תלמידים זה לוקח מלא זמן

עם איזה מבנה נתונים אתה עובד?

היי,
אני כל פעם שמרתי כיתה ובדקתי אם מתקיים בה הפרדוקס.
אבל גם לי זה באיזשהו שלב שהוא מגיע לכיתות בגודל 300+ הוא מתחיל להיתקע
ובכללי ההדפסה של האחוז עבור כל גודל של כיתה הוא איטי.

אולי זה ספוילר למי שעדיין לא פתר:

יש פה הרבה ריצות, עבור כל גודל כיתה (מ-1 עד 366) אני צריכה להגריל 10000 פעמים כיתות ולחשב את האחוז.

איך זה מדפיס לכם מהר? רק מההנחיות זה נשמע זמן ארוך…

תחשבי על דרך לא לייצר כיתה שלמה כל פעם

2 לייקים

זה ספוילר די גדול :face_with_hand_over_mouth:

תיקנתי :slight_smile:

לייק 1

אולי אורפז התכוונה אליי ולספוילר שהסתרתי :no_mouth:

אני די בטוח שזה לא המקרה