תרגיל בית מספר 1#

מסמכים קשורים
ב ה. ד. ג. ב. ב. אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, חורף :22 תרגיל בית מספר 6 - להגשה עד 66 בינואר 3162 בשעה קיר

תרגיל בית מספר 1#

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

תרגיל בית מספר 1#

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

Microsoft Word - ExamA_Final_Solution.docx

שאלהIgal : מערכים דו מימדיים רקורסיה:

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

מבוא לתכנות ב- JAVA תרגול 7

שאלהIgal : מערכים דו מימדיים רקורסיה:

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

תוכן העניינים

שאלהIgal : מערכים דו מימדיים רקורסיה:

מבוא למדעי המחשב

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

מטלת מנחה (ממ"ן) 11 הקורס: חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות 2,1 4 מספר השאלות: 7 משקל המטלה: נקודות סמסטר: ב 2007 מו

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

תוכן העניינים

תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש

פייתון

תרגול 1

מבוא למדעי המחשב - חובלים

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

Algorithms Tirgul 1

PowerPoint Presentation

Microsoft Word - hedva 806-pitronot-2011.doc

Microsoft Word - c_SimA_MoedB2005.doc

234114

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

Tutorial 11

Microsoft Word - עבודת פסח לכיתה י 5 יחל.doc

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

Microsoft Word - SDAROT 806 PITRONOT.doc

מבוא למדעי המחשב - חובלים

Slide 1

הגשה תוך שבוע בשעת התרגול

ייבוא וייצוא של קבצי אקסל וטקסט

Slide 1

בגרות עז יולי 17 מועד קיץ ב שאלון ,000 א. ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב-. 25% כאשר המחיר מתייקר ב- המחיר החדש הוא פי,

Slide 1

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

מקביליות

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

שאלה 2. תכנות ב - CShell

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

יחידה 8: שיקוף, הרחבה וכיווץ של פרבולות שיעור 1. שיקוף בציר x תלמידים התבקשו לשרטט פרבולה שכל הערכים שלה שליליים. y יואב ש רטט כך: y תומר אמר: אי-אפשר

Microsoft Word - c_SimA_MoedA2006.doc

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

מבוא למדעי המחשב

סדנת תכנות ב C/C++

Microsoft Word - Ass1Bgu2019b_java docx

סדרה חשבונית והנדסית

מספר נבחן / תשס"ג סמסטר א' מועד א' תאריך: שעה: 13:00 משך הבחינה: 2.5 שעות בחינה בקורס: מבחנים והערכה א' מרצה: ד"ר אבי אללוף חומר עזר

תוכנה 1 אביב תשע"ח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת ה

מדריך למרצים ומתרגלים 1

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

תאריך הבחינה 30

Microsoft Word B

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

HaredimZ2.indb

. שאלה 1: ה אי x] T : R 4[ x] R 4[ אופרטור ליניארי מוגדר על-ידי T( ax bx cx d) bx ax cx c )13 נק'( א( מצאו את הערכים העצמיים, המרחבים העצמיים

אוניברסיטת בן-גוריון המחלקה למדעי המחשב בוחן במבנים בדידים וקומבינטוריקה פרופ' מתיא כ"ץ, ד"ר עופר נימן, ד"ר סטוארט סמית, ד"ר נתן רובין, גב'

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

ex1-bash

עמוד 1 מתוך 5 יוחאי אלדור, סטטיסטיקאי סטטיסטיקה תיאורית + לוחות שכיחות בדידים/רציפים בגדול מקצוע הסטטיסטיקה נחלק ל- 2 תחומים עיקריים- סטט

Slide 1

Data Structure Assignment no.3 תאריך הגשה: p.m. 11/09/16, 23:59 את העבודה יש להגיש בזוגות במערכת ההגשות.submission system על העבודה להיות מוגשות כקובץ

Microsoft Word - two_variables3.doc

regular_expression_examples

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

פתרון וחקירת מערכות של משוואות לינאריות שאלות: 1( מצא אילו מהמערכות הבאות הן מערכות שקולות: 2x+ y= 4 x+ y= 3 x y = 0 2x+ y = 3 x+ 10y= 11 א. 2x 2y= 0

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

מבוא למדעי המחשב

PowerPoint Presentation

Untitled

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

Microsoft Word - solutions.doc

תרגיל 5-1

ע 003 מרץ 10 מועד מיוחד פתרונות עפר

סז 002 נואר 07 מועד חורף פתרונות עפר

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

תמליל:

תרגיל בית מספר 6 )אחרון!( - להגשה עד 12 ביוני )יום ראשון( בשעה ::225 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הגשה: תשובותיכם יוגשו בקובץ pdf ובקובץ py בהתאם להנחיות בכל שאלה. השתמשו בקובץ השלד skeleton6.py כבסיס לקובץ ה py אותו אתם מגישים. לא לשכוח לשנות את שם הקובץ למספר ת"ז שלכם לפני ההגשה, עם סיומת.py בסה"כ מגישים שני קבצים בלבד. עבור סטודנטית שמספר ת"ז שלה הוא 012345678 הקבצים שיש להגיש הם.hw6_012345678.py ו- hw6_012345678.pdf הקפידו לענות על כל מה שנשאלתם. תשובות מילוליות והסברים צריכים להיות תמציתיים, קולעים וברורים. להנחיה זו מטרה כפולה: 1. על מנת שנוכל לבדוק את התרגילים שלכם בזמן סביר. 2. כדי להרגיל אתכם להבעת טיעונים באופן מתומצת ויעיל, ללא פרטים חסרים מצד אחד אך ללא עודף בלתי הכרחי מצד שני. זוהי פרקטיקה חשובה במדעי המחשב. הערות: חלק מן השאלות בתרגיל זה מבוססות על שאלות ממבחנים משנים קודמות, עם שינויים מסויימים..1 ליד כל שאלה מצויין מספר הנקודות שהיא מקנה בתרגיל הבית )לא בהכרח מספר הנקודות שהשאלה היתה שווה במבחן(. ניתן להגיע למקסימום של 111 נקודות..2 שאלה 6 לא תיבדק אך היא לקוחה ממבחן ומומלץ לפתור אותה לאחר שהנושא )קודים לאיתור ותיקון שגיאות( ילמד..3 עמ' 1 מתוך 8

שאלה 1 גנרטורים )20 נק'( r,n משולש פסקל הוא משולש אינסופי המורכב משורות של מספרים, כך שבשורה ה- האיבר ה- מוגדר כ:. a nr n n! r r!( n r!) 7 השורות הראשונות במשולש הן כדלהלן: נשים לב שניתן לקבל את השורה ה- i במשולש פסקל מהשורה ה- i-1 באופן הבא: האיבר הראשון והאיבר האחרון בשורה הם תמיד 1. 1. פרט לכך, האיבר ה- j בשורה ה- i הוא סכום האיבר ה- j-1 והאיבר ה- j בשורה ה- i-1. 2. נייצג כל שורה במשולש על ידי רשימה כך שהשורה ה- 1 היא הרשימה [1], השורה ה- 1 היא הרשימה[ 1,1 ] וכו'. סעיף א השלימו בקובץ השלד את הפונקציה,next_row(row) המקבלת את השורה ה- i-1 במשולש פסקל ומחזירה את השורה ה- i. )return( סעיף ב נייצג את משולש פסקל כזרם אינסופי של רשימות בצורה הבאה: []1], [1,1], [1,2,1], [1,3,3,1], השלימו בקובץ השלד את פונקצית הגנרטור() generate_pascal אשר מחזירה גנרטור המייצר את משולש פסקל. כלומר, בכל קריאה ל- next על הגנרטור להחזיר את השורה הבאה במשולש פסקל - בצורת רשימה. דוגמת הרצה: >>> gen = generate_pascal() >>> next(gen), next(gen), next(gen) ([1], [1,1], [1,2,1]) עמ' 2 מתוך 8

סעיף ג משולש ברנולי הוא המשולש שבו כל שורה היא רשימת הסכומים החלקיים של המקדמים הבינומיים, כלומר. a nk k i0 n i במילים אחרות, כל שורה במשולש ברנולי היא רשימת הסכומים החלקיים של השורה המתאימה במשולש פסקל. בפרט, המספר ה- i בשורה ה- j של משולש ברנולי הוא סכום i המספרים הראשונים של השורה ה- j במשולש פסקל. 7 השורות הראשונות במשולש ברנולי הן כדלהלן: נייצג את משולש ברנולי בצורה הדומה למשולש פסקל, כזרם אינסופי של רשימות: [[1], [1,2], [1,3,4], [1,4,7,8] השלימו בקובץ השלד משולש ברנולי. דוגמת הרצה: את פונקצית הגנרטור() generate_bernoulli אשר מחזירה גנרטור המייצר את >>> gen = generate_ bernoulli() >>> next(gen), next(gen), next(gen) ([1], [1,2], [1,3,4]) הנחיות הגשה: ממשו את הפונקציות מסעיפים א', ב' ו ג' בקובץ השלד. עמ' 3 מתוך 8

שאלה - 2 ניקוי רעש בתמונות )20 נק'( שימו לב שעל מנת להריץ את הפונקציות בשני הסעיפים הבאים עליכם לדאוג שבתיקיה (folder) בה נמצא קובץ הקוד שלכם נמצא גם הקובץ. matrix.py א. השלימו בקובץ השלד את שלוש השורות החסרות בפונקציה,upside_down שמקבלת מטריצה שמייצגת תמונה ומחזירה מטריצה חדשה שמייצגת את התמונה שמתקבלת ע"י שיקוף התמונה על הציר האופקי. לאחר הפעלת הפונקציה תתקבל התמונה: לדוגמא עבור התמונה: הפעילו את הפונקציה על התמונה the-simpsons.bitmap המצורפת לכם בין קבצי התרגיל. ב. בין קבצי התרגיל תמצאו את קובץ התמונה.atallbuilding.bitmap כפי שתוכלו לראות, קרוב לפינה השמאלית העליונה של התמונה נמצא כתם לבן. נרצה להסיר את הכתם תוך שמירה על חדות התמונה. a. נסו להשתמש בשיטות local means, local medians אשר הוצגו בשיעור על מנת להסיר את הכתם. נסו להשתמש בגדלי סביבה שונים ולהפעיל את הניקוי מספר פעמים בזו אחר זו. צרפו לקובץ ה pdf את תוצאות פעולות הניקוי, וכן השוואה קצרה בין ביצועי השיטות והסבר להבדלים בינהן..local medians נתאר עכשיו רעיון לשיטת ניקוי שונה מעט, שהיא וריאציה על b. i. ראשית, לא ננסה "לתקן" את כל הפיקסלים בתמונה, אלא רק את הפיקסלים הבהירים מאד והכהים מאד. בפרט, נתקן רק פיקסלים עם ערכי בהירות קטנים מ 5 או גדולים מ 251. ההנחה מאחורי שינוי זה היא שהרעש יצר ערכי בהירות קיצוניים..ii בבואנו לתקן פיקסלים בהירים, נשתמש רק בפיקסלים הלא-בהירים שבסביבתם על מנת לחשב את החציון )כלומר רק בפיקסלים שערך הבהירות שלהם הוא 251 ומטה(. באופן דומה, בבואנו לתקן פיקסלים כהים נשתמש רק בפיקסלים הלא-כהים שבסביבתם )ערך בהירות 5 ומעלה( על מנת לחשב את החציון. השלימו בקובץ השלד את הפונקציה modified_ median כך שקריאה לפונקציה modified_local_medians תבצע את התיקון שתואר לעיל. modified_local_medians מקבלת אוביקט מטיפוס Matrix ומחזירה אוביקט חדש מטיפוס.Matrix צרפו לקובץ ה pdf את תוצאות פעולת הניקוי, וכן השוואה קצרה עם התוצאות הקודמות. הערה כללית לשני הסעיפים: על מנת לצרף לקובץ ה pdf את תוצאות פעולות הניקוי, הציגו את אוביקט ה Matrix החדש על המסך באמצעות הפעלת המתודה display של המחלקה,Matrix קחו screen shot )צילום מסך( של התוצאה, וצרפו את התמונה שהתקבלה. עמ' 4 מתוך 8

שאלה 3 קארפ-רבין )22 נק'( שאלה זו עוסקת באלגוריתם קארפ-רבין לחיפוש מחרוזת בטקסט. סעיף א הקוד לפונקציה find_matches_kr אשר הוצג בשיעור עלול להחזיר, בנוסף לאינדקסים של מופעי מחרוזת ה-. גם אינדקסים של תת -מחרוזות אשר אינן זהות ל- pattern, text אותה אנו מחפשים בתוך מחרוזת ה- pattern אינדקסים כאלה נקראים, false positive כלומר מופעים שקריים שהקוד מחזיר בטעות. השלימו בקובץ השלד את הפונקציה find_matches_kr_safe אשר מבוססת על find_matches_kr אבל לא מחזירה לעולם false positive )וכמובן עדיין מחזירה את האינדקסים של כל המופעים האמיתיים של pattern ב - )text סעיף ב נתונה מחרוזת text באורך n ומחרוזת pattern באורך m, והניחו כי אנו משתמשים בערכי ברירת המחדל של r ושל base אשר ראינו בכתה. באיזה תרחיש )כלומר עבור אילו מחרוזות text ו- )pattern יגרום השינוי שביצעתם בסעיף א' לשינוי הגדול ביותר בזמן הריצה לעומת הקוד המקורי? תנו דוגמה והסבירו. מהי סיבוכיות הזמן במקרה זה? השוו אותה לזו של הפונקציה המקורית. סעיף ג נניח שמריצים את אלגוריתם קארפ-רבין על text ו- pattern אקראיים, כלומר כאלה שכל תו בהם מוגרל בהסתברות שווה מתוך האלפבית. האם צפוי הבדל בין זמן הריצה של הפונקציה המקורית לבין זה של הפונקציה שכתבתם בסעיף א'? הביאו דוגמאות הרצה ונמקו את מסקנתכם. אין צורך לבצע ניתוח סיבוכיות פורמלי. סעיף ד להלן פונקצית fingerprint אלטרנטיבית: def fingerprint_new (string, r=2**32-3): partial_sum=0 for x in string: partial_sum = (partial_sum + ord(x)) % r return partial_sum ממשו את הפונקציה (32-3**2=r text_fingerprint_new(string, length, כך שתפעל בדומה ל text_fingerprint המקורית אך תשתמש ב fingerprint_new לחישוב ה.fingerprints מה סיבוכיות זמן הריצה של text_fingerprint_new על מחרוזת באורך n? הסבירו. חוו דעתכם האם זו שיטה טובה לחישוב.fingerprints נמקו והדגימו, אם יש צורך. הנחיות הגשה: השלימו את קוד הפונקציות מסעיפים א' וד' בקובץ השלד. את התשובות המילוליות לסעיפים ב', ג', ד' רשמו בקובץ ה-.pdf עמ' 5 מתוך 8

שאלה 4 דחיסת האפמן )22 נק'( מועצת החכמים הבינלאומית לדחיסה קיבלה החלטה להחליף את הטכנולוגיה הספרתית הבינארית )המתבססת על שני ערכים 1 ו- ( 1 בטכנולוגיה ספרתית טרינארית: מידע ייוצג באמצעות שלושה ערכים שיסומנו,1 1 ו- 2.ברצוננו להתאים את האלגוריתם לבניית עצי האפמן לשיטה זו. בכל שלב האלגוריתם יאחד שלושה צמתים )במקום שניים( בעלי השכיחויות המינימליות. במקרה של יותר ממינימום אחד הבחירה ביניהם שרירותית. בנוסף, בחירת הסדר בין הבנים של צומת )שמאל, מרכז, ימין( היא שרירותית ואין לה חשיבות בשאלה זו. מכאן שלכל צומת בעץ שאיננו עלה יהיו כעת 3 בנים. יוצא דופן אחד הוא שורש העץ: אם מספר התווים השונים זוגי, לשורש יהיו רק שני בנים. א. נתון קורפוס המכיל את k התווים התפלגות התווים בקורפוס מקיימת את הכלל הבא: תדירות התו כאשר k מספר אי-זוגי כלשהו ומתקיים היא. נתון כי ב., ציירו את המבנה הכללי של עץ האפמן )טרינארי( המתקבל, ציינו את השכיחויות בעלים )אין צורך לתאר את שלבי בניית העץ(. נתון קובץ שמכיל תווים מתוך אלפבית בן בנוסף נתון קורפוס עם תדירויות: ומתקיים: תווים. )כאשר ). יהי p התו בעל התדירות המינימלית ( יהיו מהו ההפרש בין שדרושים כדי לקודד את התו (, ו- קודי ההאפמן שמתקבלים עבור התווים התו בעל התדירות המקסימלית ( בהתאמה. )מספר הביטים שדרושים כדי לקודד את התו.) ) לבין? ) ג. נתון קורפוס שמכיל את 01 התווים האחרים הינה 1. בונים מקורפוס זה עץ האפמן טרינארי., שכיחות התו )מספר הביטים הינה k ושכיחות כל 77 התווים.i.ii מהו k המינימלי שמבטיח שהתו יקבל קידוד באורך ביט אחד בלבד? מהו אורך הקידוד המקסימלי לתו בקורפוס במקרה זה? עליכם לתת הוכחה מנומקת לכל אחת מקביעותיכם. עמ' 6 מתוך 8

)20 נק'( שאלה 2 זיו למפל כזכור, באלגוריתם Lempel-Ziv דוחסים חזרות באורך לפחות 3 )מתעלמים מחזרות באורך 1,2 משום שדחיסתן אינה משתלמת(. אם נסמן ב- L את אורך החזרה המינימלי שהאלגוריתם דוחס, אז 3=L. האם תיתכן מחרוזת שדחיסתה עם 4=L תהיה יעילה יותר מאשר עם 3=L? כלומר האם ייתכן שגם אם גילינו חזרה באורך 3, ישתלם לא לדחוס אותה? אם לדעתכם כן, רשמו דוגמה למחרוזת כזו, וכן את את ייצוג הביניים* של הדחיסה, עבור 3=L ועבור 4=L. אם לדעתכם לא, הסבירו מדוע. * דוגמה לייצוג ביניים: ייצוג הביניים של המחרוזת abcabcdedede הוא [ a, b, c,(3,3), d, e,(2,4)] א..i ב. לפניכם מוצג קוד עבור הפונקציה genstring(n) שמייצרת מחרוזת באורך n מתוך התפלגות ידועה של שכיחות אותיות )הנתונה ע"י המחרוזת freq בקוד(. def genstring(n): freq = 'a'*25+'bcdefghijklmnopqrstuvwxyz' randletters = [random.choice(freq) for i in range(n)] return ''.join(randletters) תהי.s=genString(100000) איזו דחיסה צפויה לתת יחס דחיסה טוב יותר עבור Huffman s: או?Lempel-Ziv הסבירו את תשובתכם בצירוף מספר דוגמאות הרצה שיתמכו בה. אין צורך בהוכחה מתמטית פורמלית. הבהרה: קידוד Huffman כאן ישתמש ב- s הן בתור corpus והן בתור.text נחליף את המחרוזת freq במחרוזת הבאה: 'a'*2500+'bcdefghijklmnopqrstuvwxyz' freq = האם לדעתכם התשובה תשתנה? הסבירו..ii ג. נניח שעבור טקסט באורך n, מאפשרים לאורך החזרה המקסימלי באלגוריתם Lempel-Ziv להיות 1-n )במקום 31 כפי שמופיע בערכי ברירת המחדל של האלגוריתם שהוצג בהרצאה(. שאר פרטי האלגוריתם ללא שינוי. רוצים לדחוס באופן זה את המחרוזת 01010101 באורך n. כיצד נראה ייצוג הביניים של הדחיסה? מהו יחס הדחיסה )=מספר הביטים במחרוזת הדחוסה חלקי מספר הביטים במחרוזת ללא שימוש בדחיסת למפל-זיו( כתלות ב- n? תנו תשובה בסדר גודל במונחים של ( )O. טיפ: כדאי לבדוק את התשובות בשאלה זו ע"י הרצות... עמ' 7 מתוך 8

שאלה 6 קודים לאיתור ולתיקון שגיאות )לא להגשה( חלק ראשון הקוד לתיקון טעויות המתואר כאן מעתיק 3 ביטים של אינפורמציה למילות קוד בנות 7 ביטים, על פי הסכמה הבאה: (x 1, x 2, x 3 ) (x 1, x 2, x 3, x 1 + x 2, x 1 + x 3, x 2 + x 3, x 1 + x 2 +x 3 ) כאשר הסכומים מחושבים מודולו 2. א. בטבלה הבאה, השלימו בכל שורה את מילת הקוד המתקבלת מ- 3 הביטים הרשומים בה. (x 1, x 2, x 3 ) (x 1, x 2, x 3, x 1 + x 2, x 1 + x 3, x 2 + x 3, x 1 + x 2 +x 3 ) (0, 0, 0) (0, 0, 1) (0, 1, 1) (1, 1, 1) ב. מהו המרחק המינימלי, d, של הקוד? רשמו שתי מילות קוד שונות w, 1, w 2 שהמרחק ביניהן הוא d. ג. כך שיש שתי מילות קוד שונות w, 1, w 2 המקיימות: המרחק של שתיהן מ- טענה: קיימת מילה y שווה, ומרחק זה הוא המרחק המינימלי מ- y למילת קוד כלשהי. החליטו אם הטענה הנ"ל נכונה. אם לדעתכם הטענה נכונה תנו דוגמה ל- w 2 w, 1 y, כאלו. אחרת הסבירו מדוע לא. חלק שני להלן פונקציית קידוד עבור קוד חדש בשם, bad_coding המקבלת רשימת ביטים x ומוציאה רשימת ביטים. def bad_coding(x): z = (x[0]+x[1]) % 2 return (x+[z])*4. תזכורת: קוד עם מרחק מינימלי נקרא קוד מטיפוס האורך של x יסומן כרגיל ב- x..[n=, k=, d= ] השלימו את המשפט הבא: bad_coding הוא קוד מטיפוס סוף עמ' 8 מתוך 8