מסכות ביטים
שיעור 13 מתוך 15 בקורס תכנות דינמי 101 של Coddy.
מיסוך סיביות הוא טכניקה המשמשת בתכנות דינמי כדי לייעל פתרונות הכוללים תת־קבוצות או צירופים של איברים. הטכניקה כוללת ייצוג של כל תת־קבוצה או צירוף כמסכת סיביות, שבה כל סיבית במסכה מייצגת את נוכחותו או היעדרו של איבר מתאים. באמצעות פעולות מניפולציה של סיביות, אלגוריתמים של תכנות דינמי יכולים לעבור ביעילות על כל תת־הקבוצות או הצירופים האפשריים בלי ליצור אותם במפורש.
אתגר
קשהספירת תת-קבוצות שסכומן נתון
באתגר הזה נתון לך מערך של מספרים שלמים וסכום יעד. המשימה שלך היא למצוא את מספר תת-הקבוצות במערך שסכומן שווה לסכום היעד. אפשר להשתמש במיסוך סיביות כדי לעבור על כל תת-הקבוצות האפשריות במערך ולספור כמה מהן מסתכמות לסכום היעד.
נסו בעצמכם
def count_subsets(arr, target_sum):
# כתבו כאן את הקודכל השיעורים ביחידה תכנות דינמי 101
תרגלו בעצמכם: קומפיילר Python אונליין