Yam
24 באפריל, 2020, 9:08am
כתבו פונקציה בשם combinations
שמקבלת שני פרמטרים בלבד – רשימת איברים (items
), ואורך כל תוצאה (n
).
הפונקציה תחזיר רשימה של רשימות , בה כל רשימה פנימית תכלול קומבינציה אפשרית של האיברים ברשימה items
באורך n
.
לדוגמה:
combinations([1, 2, 3], 2)
תחזיר:
[[1, 2], [1, 3], [2, 3]]
בונוסים:
דאגו שהפונקציה תוכל לפעול גם על מחרוזות
החזירו טאפלים כאיברים הפנימיים במקום רשימות
לדוגמה:
combinations('abcde', 3)
תחזיר:
[(‘a’, ‘b’, ‘c’),
(‘a’, ‘b’, ‘d’),
(‘a’, ‘b’, ‘e’),
(‘a’, ‘c’, ‘d’),
(‘a’, ‘c’, ‘e’),
(‘a’, ‘d’, ‘e’),
(‘b’, ‘c’, ‘d’),
(‘b’, ‘c’, ‘e’),
(‘b’, ‘d’, ‘e’),
(‘c’, ‘d’, ‘e’)]
מוזמנים ומוזמנות לפרסם פה את הפתרונות שלכם
תזכורת: חלק מהאתגרים שמתפרסמים פה קשים מאוד. זה בסדר גמור לא להצליח אותם. האתגר הזה באופן ספציפי הוא כנראה בין הקשים שהתפרסמו עד עכשיו בקורס.
2 לייקים
orronai
24 באפריל, 2020, 9:30am
הכל בפונקציה אחת או שמותר לחלק לכמה פונקציות?
לייק 1
Yam
24 באפריל, 2020, 9:30am
מותר לעשות מה שאתה רוצה כל עוד combinations עובדת בדיוק כמו שהיא הוגדרה בתרגיל, וכל עוד התרגיל נפתר רק באמצעות חומר שלמדנו.
TamirOr93
24 באפריל, 2020, 9:53am
האם על הפונקציה להחזיר, לדוגמה- גם את 1,2 וגם את 2,1?
Yam
24 באפריל, 2020, 9:57am
ראה דוגמאות, התשובה היא לא
DissonantHarmony
24 באפריל, 2020, 10:08am
האתגר הזה מבאס אותי על כך שדחיתי את פתירת המחברת האחרונה למחר־כך, ועד שאני אסיים להגיש אותה ולהתפנות אליו, אורפז כבר תהרוס לכולנו.
2 לייקים
Yam
24 באפריל, 2020, 10:09am
אתה יכול להאשים רק את עצמך
DissonantHarmony
24 באפריל, 2020, 10:12am
בסדר! בסדר!
-הלכתי להזכר איך מחשבים מקדם בינומי.
orronai
24 באפריל, 2020, 10:30am
לייק 1
orronai
24 באפריל, 2020, 11:00am
לייק 1
lsperling
24 באפריל, 2020, 11:16am
def combinations(items, n):
combs_list = []
create_combs(items, n, combs_list, [], 0)
return combs_list
def create_combs(items, n, combs_list, comb, index):
if n == 0:
combs_list.append(tuple(comb))
return
while index < len(items):
comb_c = comb.copy()
comb_c.append(items[index])
create_combs(items, n - 1, combs_list, comb_c, index + 1)
index = index + 1
return combs_list
2 לייקים
orpazf
24 באפריל, 2020, 11:54am
לייק 1
orpazf
24 באפריל, 2020, 11:56am
דווקא זה מסוג התרגילים שאני מסתבכת איתם כל פעם מחדש אפילו כשמותר לי לולאת for
חוץ מזה בלי תירוצים, גם לי יש את רוב מחברת 6 ועוד מלא ש"ב מהאוניברסיטה
2 לייקים
aviadamar
24 באפריל, 2020, 2:22pm
לא מצליח
אני יודע מזה זה בינום ואני מכיר את הנוסחה.
למעשה אני יודע לחשב את כמות הצירופים שאני אמור לקבל.
אבל לא מצליח להרכיב את הקוד לאלגוריתם שממש מחזיר אותם =\
עריכה: נראה לי עליתי על משהו עם עצמי. חוזר לנסות שוב
עריכה 2: הרמתי ידיים
לייק 1
Almog
24 באפריל, 2020, 2:38pm
אני אהיה בוגרת ואתאפק ואסתכל על זה רק אחרי שאסיים את התרגילים להגשה
3 לייקים
aviadamar
24 באפריל, 2020, 2:52pm
אני באתגר אחר כרגע - מתאפק לא להסתכל בתשובות
ruty3017
25 באפריל, 2020, 10:18am
קשה… עליתי על זה אבל אני לא מצליחה לחשוב על תנאי שיגרום לקוד להישאר אלגנטי וגם שכל המקרי קצה יעבדו
yaromguy
25 באפריל, 2020, 3:56pm
שובר על זה את הראש כבר חצי יום ועדיין לא מצליח.
לייק 1
Yam
25 באפריל, 2020, 4:03pm
הזהרתי שזה אחד קשה
3 לייקים
israel4001
26 באפריל, 2020, 7:47am
עריכה: הפתרון שכתבתי כאן לא מכסה את כל המקרים, מקווה להעלות בהמשך פתרון נכון יותר
לייק 1