לתוך שק אטום מכניסים עשרה כדורים כחולים ועשרה כדורים לבנים. מערבבים ושולפים באקראי שני כדורים. אם הכדורים זהים בצבעם, מחזירים לשק במקום שני הכדורים שהוצאנו, כדור אחד כחול ואם הכדורים בעלי צבעים שונים מחזירים לשק כדור לבן אחד בלבד. במצב הזה תמיד יישאר בשק כדור אחרון בצבע מסוים - איזה כדור נשאר אחרון? מה קורה כאשר משנים את תנאי החידה ומספר הכדורים הלבנים הופך לאי זוגי ? או כאשר שניהם אי זוגיים ? כדי לענות על החידה אתם נדרשים לכתוב תוכנית פייתון פשוטה שתדמה מודל של החידה, ואת השלבים המובילים לפתרון. לפני שתציצו בפתרון שלנו, נסו לבנות פתרון בעצמכם.
To see this working, head to your live site.
Apr 29, 2019
· Edited: Apr 29, 2019כחול ולבן זה הצבע שלי - חידת פייתון
כחול ולבן זה הצבע שלי - חידת פייתון
1 comment
0
הפתרון שלנו ליצירת מודל של החידה עושה שימוש בספריית random המאפשרת, בין היתר, ערבוב, של רשימות. לאחר שיצרנו מודל של החידה, אנו רואים שהכדור האחרון שיישאר בשק הוא כדור כחול. (אלא אם נשנה את מספר הכדורים הלבנים למספר אי זוגי)
import random b='b'*10 w='w'*10 lista=[i for i in (b+w)] random.shuffle(lista) print(lista) while len (lista)>1: a=lista.pop() b=lista.pop() if a==b: lista.append('b') else: lista.append('w') print(lista) random.shuffle(lista)
כך נראה הפתרון שלנו -
['w', 'b', 'w', 'b', 'b', 'w', 'w', 'b', 'b', 'w', 'w', 'b', 'w', 'w', 'w', 'b', 'b', 'w', 'b', 'b']
['w', 'b', 'w', 'b', 'b', 'w', 'w', 'b', 'b', 'w', 'w', 'b', 'w', 'w', 'w', 'b', 'b', 'w', 'b']
['w', 'b', 'w', 'w', 'b', 'b', 'b', 'w', 'b', 'b', 'w', 'b', 'w', 'w', 'w', 'w', 'w', 'b']
['w', 'b', 'w', 'w', 'w', 'b', 'w', 'w', 'w', 'b', 'b', 'b', 'w', 'b', 'w', 'b', 'w']
['w', 'b', 'w', 'w', 'w', 'b', 'w', 'w', 'w', 'b', 'b', 'w', 'b', 'w', 'b', 'w']
['w', 'b', 'w', 'w', 'b', 'w', 'b', 'b', 'w', 'w', 'b', 'w', 'b', 'w', 'b']
['b', 'b', 'w', 'b', 'w', 'b', 'w', 'w', 'b', 'w', 'w', 'w', 'w', 'b']
['w', 'b', 'w', 'b', 'w', 'b', 'b', 'w', 'w', 'w', 'b', 'b', 'b']
['b', 'b', 'w', 'b', 'w', 'w', 'w', 'b', 'w', 'b', 'b', 'w']
['b', 'w', 'w', 'b', 'w', 'b', 'b', 'w', 'b', 'w', 'w']
['b', 'w', 'w', 'w', 'w', 'w', 'b', 'b', 'w', 'b']
['b', 'w', 'w', 'b', 'w', 'w', 'b', 'b', 'b']
['w', 'b', 'b', 'b', 'b', 'w', 'w', 'w']
['w', 'b', 'w', 'w', 'b', 'w', 'b']
['w', 'b', 'w', 'w', 'b', 'w']
['w', 'w', 'b', 'b', 'b']
['b', 'b', 'w', 'w']
['b', 'w', 'w']
['b', 'b']
['b']