סקריפט פייתון שפותר חידה בפחות מ 10 שניות
-
לפני תקופה התפרסמה במייל חידה כדלהלן: (קרדיט - פיצוחים)
קצת קשה לפתור את זה בראש... אבל בשביל זה יש מחשב שעושה מליוני חישובים בשניה, כתבתי את הסקריפט הבא שהביא את הפתרון בתוך פחות מ 10 שניות, לאחר לא פחות מ 948,941 נסיונות:
import itertools num_list = itertools.permutations(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) test = 0 for t in num_list: test += 1 try: a1 = eval(t[4] + t[3] + t[2] + t[1] + t[1]) a2 = eval(t[3] + t[6] + t[5] + t[3] + t[1]) a3 = eval(t[2] + t[7]) a4 = eval(t[3] + t[6] + t[0] + t[9] + t[8] + t[4]) except: pass if a1 + a2 + a3 == a4: print(f'הפתרון נמצא לאחר {test} נסיונות') print(a1, a2, a3, a4)
נראה לי שהקוד הזה הוא לא ממש "לפי הספר", אבל הוא עובד מצויין
אשמח לשמוע את דעת המומחים... -
לפני תקופה התפרסמה במייל חידה כדלהלן: (קרדיט - פיצוחים)
קצת קשה לפתור את זה בראש... אבל בשביל זה יש מחשב שעושה מליוני חישובים בשניה, כתבתי את הסקריפט הבא שהביא את הפתרון בתוך פחות מ 10 שניות, לאחר לא פחות מ 948,941 נסיונות:
import itertools num_list = itertools.permutations(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) test = 0 for t in num_list: test += 1 try: a1 = eval(t[4] + t[3] + t[2] + t[1] + t[1]) a2 = eval(t[3] + t[6] + t[5] + t[3] + t[1]) a3 = eval(t[2] + t[7]) a4 = eval(t[3] + t[6] + t[0] + t[9] + t[8] + t[4]) except: pass if a1 + a2 + a3 == a4: print(f'הפתרון נמצא לאחר {test} נסיונות') print(a1, a2, a3, a4)
נראה לי שהקוד הזה הוא לא ממש "לפי הספר", אבל הוא עובד מצויין
אשמח לשמוע את דעת המומחים... -
@איסתרק-השלישי לא הבנתי, איך זה פותר את החידה? למה "אל" שווה 57? לפי איזה חישוב?
ומה זה אומר "ספרותיו התחלפו באותיות"? גימטריה?@צדיק-תמים אוי לא... זה מביא תוצאה שונה לחלוטין...
ספרותיו התחלפו באותיות הכוונה שכל אות מרמזת לספרה, כאשר אין שתי אותיות מרמזות לאותו מספר. זאת אומרת שאם לצורך הענין 'כ' שווה 1 אז 'ל' לא יהיה שווה 1.
דו"ק... -
לפני תקופה התפרסמה במייל חידה כדלהלן: (קרדיט - פיצוחים)
קצת קשה לפתור את זה בראש... אבל בשביל זה יש מחשב שעושה מליוני חישובים בשניה, כתבתי את הסקריפט הבא שהביא את הפתרון בתוך פחות מ 10 שניות, לאחר לא פחות מ 948,941 נסיונות:
import itertools num_list = itertools.permutations(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) test = 0 for t in num_list: test += 1 try: a1 = eval(t[4] + t[3] + t[2] + t[1] + t[1]) a2 = eval(t[3] + t[6] + t[5] + t[3] + t[1]) a3 = eval(t[2] + t[7]) a4 = eval(t[3] + t[6] + t[0] + t[9] + t[8] + t[4]) except: pass if a1 + a2 + a3 == a4: print(f'הפתרון נמצא לאחר {test} נסיונות') print(a1, a2, a3, a4)
נראה לי שהקוד הזה הוא לא ממש "לפי הספר", אבל הוא עובד מצויין
אשמח לשמוע את דעת המומחים...@איסתרק-השלישי יפה מאוד! אבל למה אתה צריך את ה try except למה שיהיו חריגות
קוד מקצועי!! -
לפני תקופה התפרסמה במייל חידה כדלהלן: (קרדיט - פיצוחים)
קצת קשה לפתור את זה בראש... אבל בשביל זה יש מחשב שעושה מליוני חישובים בשניה, כתבתי את הסקריפט הבא שהביא את הפתרון בתוך פחות מ 10 שניות, לאחר לא פחות מ 948,941 נסיונות:
import itertools num_list = itertools.permutations(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) test = 0 for t in num_list: test += 1 try: a1 = eval(t[4] + t[3] + t[2] + t[1] + t[1]) a2 = eval(t[3] + t[6] + t[5] + t[3] + t[1]) a3 = eval(t[2] + t[7]) a4 = eval(t[3] + t[6] + t[0] + t[9] + t[8] + t[4]) except: pass if a1 + a2 + a3 == a4: print(f'הפתרון נמצא לאחר {test} נסיונות') print(a1, a2, a3, a4)
נראה לי שהקוד הזה הוא לא ממש "לפי הספר", אבל הוא עובד מצויין
אשמח לשמוע את דעת המומחים...@איסתרק-השלישי כתב בסקריפט פייתון שפותר חידה בפחות מ 10 שניות:
לאחר לא פחות מ 948,941 נסיונות
מתוך 3,628,800 אפשרויות!!!
-
אם כבר מדברים על פתרון חידות בפייתון הנה סקריפט שפותר את החידה הבאה:
קיים מספר בעל 5 ספרות אשר אם תכתבו 1 מימינו הוא יהיה גדול פי 3 מאשר אם תכתבו את המספר בתוספת 1 לשמאלו, מהו המספר?
קוד:
for i in range(10000,100000): if ((i * 10) + 1) == (i + 100000) * 3: print(i) break