Menu
Coddy logo textTech

מסכות ביטים

שיעור 13 מתוך 15 בקורס תכנות דינמי 101 של Coddy.

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

challenge icon

אתגר

קשה

ספירת תת-קבוצות שסכומן נתון

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

נסו בעצמכם

def count_subsets(arr, target_sum):
    # כתבו כאן את הקוד

כל השיעורים ביחידה תכנות דינמי 101

תרגלו בעצמכם: קומפיילר Python אונליין