תכנות, רקורסיה, מערכים, מחרוזות, עצים בינאריים ורשימות מקושרות
hash_mod מתוך המחלקה hashtable שראינו בכיתה:self.hash_mod = lambda key: hash_func(key) % mhash_func, ציינו עבור כל מימוש האם הוא:math.log(x,b) מחזירה float המייצג (בקירוב) את הערך של .lambda x: x%10lambda x: random.randint(x)lambda x: 1lambda x: -1*xlambda x: int(math.log(x,2))maxmatch מהכיתה שמחפשת חזרה "קדימה" (התאמה), כעת יש גם הפונקציה maxmatch_back שמחפשת חזרה "אחורה"."abcdeabcde" נדחוס בייצוג הביניים ."abcdeedcba" נדחוס בייצוג הביניים ."aaaalxbxaaaa" נדחוס בייצוג הביניים שהאלגוריתם החדש יייצר."aaaa""abccba"LZW_compress_new בשורות הריקות בהתאם לשינוי המתואר בשאלה. הניחו שמומשה לכם הפונקציה:maxmatch_back(text, p, W=2**12-1, L=2**5-1)maxmatch, מקבלת אותם פרמטרים ומחזירה זוג המקיים כאשר מקסימלי.LZW_compress שראינו בכיתה:arr, ערך אורך n, ומחרוזת str. המשכרך arr מחזיק בחזיקות של מחרוזות. על הפונקציה להחזיר את הסקדניאה בחזיקות בחרך הממוסדר בחרך בסדר יורד לפי עוצמות התחרוזות. ה מחרוזת בקטע הקרבה בעונו לפי קחרמ שפורה לעיל רובע המחרוזות קרובה ביותר לעוצמת המחרוזת str ממחרוזות הממחרוזת str.arr = ["egg", "date", "apple", "banana", "carrot"], n = 5, str = "cat" Sum of ascii values: 307 414 530 609 651 312
egg בעלת סכום עוצמה של היא הקרובה ביותר חרך קחרמ של cat.n, ערך קלוא כך, וכן קלוא מערך arr ושל מחרוזות str. על הפונקציה לבחור את הסקדניאה בחרך במערך בחזיקות המערך.arithmetic_encode_env(st, p) שמקבלת מחרוזת בינארית ואת הפרמטר ומחזירה את הקידוד כ-Tuple של שמייצג את המחרוזת הבינארית זו. כפונקציה רקורסיבית. סיבוכיות הזמן במקרה הגרוע של הפונקציה arithmetic_encode צריכה להיות , כאשר הוא אורך הקלט .arithmetic_decode_env(a, b, p) שמקבלת את הזוג המייצג את הקטע הממשי ואת הקבוע הממשי , ומחזירה את המחרוזת הבינארית המיוצגת ע"י קטע זה. ממשו את הפונקציה הזו כפונקציה רקורסיבית. הפונקציות העזר שמופיעות בתחילת הקוד הן:str1 = "abcdefghhgfedcbaabcdefgh" str2 = "abcdefghabcdefghabcdefgh"
שאלות תרגול במבוא למדעי המחשב בנושא קידוד ממבחנים של האוניברסיטה הפתוחה, אוניברסיטת תל אביב, אוניברסיטת בר-אילן, הטכניון. השאלות ממוינות לפי רמת קושי, עם פתרונות לבדיקה עצמית - כך שניתן ללמוד מטעויות ולהבין את דרך הפתרון לפני הבחינה. ניתן לאתר שאלות חוזרות ולהריץ מבחני סימולציה ממוקדים בנושא קידוד.