תכנות, רקורסיה, מערכים, מחרוזות, עצים בינאריים ורשימות מקושרות
H_compress(corpus, text) הממימשת את קידוד האפמן שראינו בכיתה, הדוחסת ע"י האפמן על פי הקורפוס corpus ומחזירה את הקידוד בביטים של המחרוזת text.LZ_compress(text) הממימשת את קידוד למפל-זיו שראינו בכיתה ומחזירה את הקידוד בביטים של (ניתן להניח שהמימושים משתמשים בפרמטרים שראינו בכיתה: , ).len(H_compress(LZ_compress(s), LZ_compress(s))) == len(LZ_compress(s))len(H_compress(s, s)) == len(H_compress(s, s[::‐1]))len(LZ_compress(H_compress(s, s))) == len(H_compress(s, s))text חוקית וקיבל מחרוזת של ביטים, נסמנה binary. אדם הציע שכעת נתייחס למחרוזת זו כאל מחרוזת בינארית של "0" ו-"1", ונפעיל עליה אלגוריתם האפמן, כאשר הקורפוס הינו "01"*25 (כלומר שכפול של "01" עשרים וחמש פעמים). לדעתו של אדם התוצאה תהיה מחרוזת קצרה יותר מהמחרוזת binary. עומר טוען שהפעלת האפמן עם הקורפוס הזה מיותרת ותייצר מחרוזת באותו אורך כמו binary. בתיה טענה ששניהם טועים -- המחרוזת לאחר דחיסת האפמן תהיה אפילו ארוכה יותר. מי מהם צודק? הסבירו.| תו | קידוד |
|---|---|
| 0 | |
| 10 | |
| 110 | |
| 1110 | |
| ... | ... |
שאלות תרגול במבוא למדעי המחשב בנושא קידוד האפמן ממבחנים של האוניברסיטה הפתוחה, אוניברסיטת תל אביב, אוניברסיטת בר-אילן, הטכניון. השאלות ממוינות לפי רמת קושי, עם פתרונות לבדיקה עצמית - כך שניתן ללמוד מטעויות ולהבין את דרך הפתרון לפני הבחינה. ניתן לאתר שאלות חוזרות ולהריץ מבחני סימולציה ממוקדים בנושא קידוד האפמן.