מחברת 3,תרגיל פיצוץ אוכלוסין

אני יצאתי מנקודת הנחה שאם מספר התושבים גדל לכדי כך, אז השיטה ממשיכה באותו אופן.
לא רואה בזה בעיה (כלומר, לא רואה סיבה לא להמשיך את אותה השיטה פשוט עם עוד ספרה וכעט הסופית היא במכפלה של 1… ואז שוב 2 וכו … )

אבל שוב, לא ירדתי לעומק של הנושא הזה עד כדי לבדוק איזה שיטות היו וכו …

לייק 1

הפונקציה יכולה להחזיר גם עם return או רק עם yield?

כי השיטה הנוכחית מבוססת על מיקומים מסויימים ואז אם אם אתה שומר על הכלל הנוכחי, אז הראשון יהיה כפול 1 והשני כפול 2, אבל מכיוון שהנוכחי שלנו כפול 1, אז המספר תז של כולם יהיה שונה. אם הם יעשו את זה כפול 2, אז כל השיטה לא נכונה.

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

הבעיה היא לא ספרת ביקורת 10 אלא כשסכום כל המכפלות יוצא 10.
האם במקרה הזה ספרת הביקורת היא 0 (10-10)?
או שהיא סכום 1+0 ואז היא 1?

אני לא מצליח להבין מה הבעיה (ברצינות ואני אשמח להסבר)
אם יש לי תעודות זהות מ 00000001 עד 99999999 וכל אחת מהם מקבלת ספרת ביקורת
לפי הכללים הרגילים.
למשל 00000001-8 … 99999999-8
איך זה בעיה אם נמשיך את זה הלאה לעוד ספרות ויהיו גם תעודות זהות מהסוג 999999991-7
כאשר ידוע שהספרה האחרונה היא תמיד ספרת ביקורת.

מה המרחק של 10 מ 10 ? :slight_smile:

“בעיה” זה הכל תלוי איך אתה מגדיר אותה. הכל אפשרי, אבל במציאות זה לא תמיד המצב.
אם מערכות המחשב בנויית לבדוק את הספרות לפי מיקום כשיש 8 ספרות, אז הספרה הראשונה מוכפלת ב1, השניה ב2, השלישית ב1 וכו’. אם אתה מוסיף עוד ספרה להתחלה, אז הספרה השנייה שהייתה עד עכשיו מוכפלת ב1 היא עכשיו מוכפלת ב2. ספרת הביקורת קרוב לוודאי תשתנה ואז התז של אנשים תהיה שונה. אם רק תשנה את זה שהספרה הראשונה תוכפל ב2, זה פחות סיפור אבל גם זה דורש עדכון כי הוא לא מוגדר להתחיל בכפול 2.

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

הכוונה שלי היא אינה שאם עכשיו הכל 9 ספרות אז התעודת זהות הראשונה פתאום מחושבת 000000001,
היא נשארת מה שהיא הייתה עבור 8, המספרים הנוספים מחושבים עבור 9 עם המכפלה הבאה במקרה הזה 1
ככה במקרה הזה לא משתנה לאף אחד :slight_smile:

אולי לא לא עובד עם העדכונים שעשו בעבר שבהם אכן שינו לכולם את הת"ז.
אבל סתם עוד דרך אפשרית :slight_smile: זה בכל מקרה מחוץ לגבולות התרגיל.

ובכל מקרה תודה על ההסבר פתחת לי קצת את העיניים על זה :heart:

מכיוון שעבר זמן ההגשה, ניתן לפרסם קוד לשאילתות.
/ צונזר /
רציתי לדעת אם זאת הייתה כוונת המשורר, כי לא יצא לי להשתמש ב YIELD, אבל כן השתמשתי בכל המודלים האחרים שלמדנו. ( ZFILL , STR , %, וחיתוך )

בבקשה לא להמציא חוקים :slight_smile:
מבקש לא לפרסם בפומבי תשובות לשאלות מהמחברות גם אחרי תום זמן ההגשה

לייק 1

אה, באמת סליחה!

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

עריכה:
אוקיי, אז לפי הדוגמא של פיבונצ’י, השתמשתי ב YIELD, אבל לא ממש מובן לי למה צריך להשתמש בזה בחישוב הזה.

נראה לי שזה חשוב להשתמש בyield כדי לא להדפיס 10^8 מספרים בבת אחת ? (חוץ מזה שבשימוש בעולם האמיתי כנראה תרצה לייצר מעט מאוד (1?) מספרים בכל סיבוב, ויותר מזה, לקרוא להם לפי מיקום/סדר מסוים)

תודה רבה על המענה.
אני חושב שכרגע אנחנו זקוקים ליותר “שאילתות” כאלו על מנת להבין מתי משתמשים ב Return
ומתי ב yield

לייק 1