מחברת 4 - מגדל הקוביות

נראה לי שאתה לא קורא נכון את ההוראות של התרגיל.

randomize_tower() - מגריל לך כל פעם מגדל מתוך 100 קוביות. המגדל לא בהכרח בגובה 100 כי הוא מרכיב אותו בהתאם לתנאים מסויימים המצויינים בתרגיל.

מחוץ למחלקה מבקשים ממך לממש 1000 בניות מגדלים. לבדוק את הגובה שלהם, ולבדוק מה הגובה הגבוה ביותר של מגדל שיש לך מתוך כל ה1000.

אז כמו שרשמתי - הגיוני שבתוך ה 1000 האלה יהיו לך שני מגדלים למשל שהם באותו הגובה. וישנה הסתברות מסויימת שיווצרו לך בדיוק שני מגדלים זהים (או יותר) אבל זו הסתברות נמוכה מאוד אבל זה לא אמור לשנות לך כלום לקוד.

ב-randomize, כל הקוביות זהות בצלעות?

נו באמת ערן… תקרא את ההוראות זה רשום שם.

2 לייקים

זה יכול להתפרש בכמה אופנים.

זה לא.

הפעולה תיצור 𝑁 קוביות שלהן צלע באורך אקראי (עליכם להגריל אורך בין 1 ל־100)
שצבען הוא שחור או לבן (בחרו באקראיות)

גם תחשוב על זה, אם הכל היה זהה מה הייתה המטרה של התרגיל ?

הגיוני שהתשובה יצאה לי 10 או 11 תלוי בהרצה

לא. אתה בודק את מספר הקבויות המקסימלי ולא את הגובה של המגדל עצמו שנוצר.

אתה צריך להציג נגיד עבור מגדל של 2 קוביות שאחת מהם בגובה 6 ואחת בגובה 100 - הגובה שלה הוא 106.

ואז מכולן להציג את הגבוה ביותר.

“”“צרו בלולאה 1,000 מגדלים ומלאו אותם בקוביות באמצעות המתודה המגרילה.
מהו המגדל הגבוה ביותר שקיבלתם?”"""
לפי ההבנה שלי צריך לבדוק את הגובה של המגדל? לא הבנתי צריך לעשות מכל המגדלים מגדל אחד?או שלחשב את הסכום של המגדל כלומר אם יש במגדל 10 קוביות לחשב את הסכום של כל העשר?

אם זה מגדל של 10 קוביות אז גובה המגדל הוא סכום הגבהים של כל הקוביות

אם אני מריץ את התוכנה מספר פעמים וכל פעם מקבל גובה שונה זה הגיוני? (כי הכל רנדומלי פה)
או שבהכרח מקבלים תמיד תשובה זהה?
(יש באמת גובה מקסימאלי ואז בוודאות לא הבנתי את התרגיל…)

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

לייק 1

בעולם אוטופי ניקח את האפשרות שיש 100 קוביות
בין 100 ל 1 ואפילו הצבעים מתאימים באורח פלא…
בקיצור אם אני לא טועה זה סכום של סדרה חשבונית בין 1 ל 100…
אז המגדל הגבוה ביותר שיכול לצאת הוא 4950…
כמובן שהתוצאות המתקבלות בעולם האמיתי הן פי 10 יותר נמוכות…
האם אני צודק?

לייק 1

מקווה שכן, כי גם לי יצא דומה לזה!

לייק 1

שאלה כי קצת התבלבלתי…
randomize_tower()
מחזיר מגדל או N קוביות?
כלומר איפה מתבצעת הבנייה של המגדל - בתוך המחלקה או מחוץ לה?

ממה שאני הבנתי ועשיתי הכל כולל הכל מתבצע בתוך הפונקציה שנמצאת בתוך המחלקה.

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

זה פשוט לא מה שאני מבינה מהוראות התרגיל…
להלן:

הוסיפו פעולה נוספת בשם randomize_tower שבוחרת מספר שלם בין 1 ל־100, נקרא לו 𝑁N.
הפעולה תיצור 𝑁 קוביות שלהן צלע באורך אקראי (עליכם להגריל אורך בין 1 ל־100), שצבען הוא שחור או לבן (בחרו באקראיות).

צרו בלולאה 1,000 מגדלים ומלאו אותם בקוביות באמצעות המתודה המגרילה.
מהו המגדל הגבוה ביותר שקיבלתם?

בגלל שכתוב בחלק השני - מלאו אותם בקוביות באמצעות המתודה המגרילה , הבנתי שצריך ליצור פונקציה חדשה איפשהו שעושה את הלולאה ויוצרת 1000 מגדלים וכל פעם משתמשים בN קוביות שהוגרלו בrandomize.tower()

לא בטוחה עד כמה זה קריטי , מה שאני החלטתי לעשות זה-
randomize.tower() - מחזירה N קוביות
עוד פעולה של המחלקה שמוצאת את גובה המגדל

מחוץ למחלקה- לולאה שיוצרת 1000 מגדלים ובדיקה מה המגדל הגבוה ביותר שהתקבל.
מקווה שזה סבבה חח

צודק, טעיתי… קראתי את זה בתור “המתודה הרגילה” כלומר מה שיצרנו add