Welcome

Tel-Aviv University
School of Computer Science
Introduction to Computer Science using Python
0368.1105
Fall Semester 2018-9



News

תרגול חזרה למבחן

שלום לכולם,
תרגול חזרה למבחן יערך ביום רביעי, ה-23/01 באולם דאך.
התרגול יתקיים בשני סבבים, הראשון בין 10:00-12:00 והשני בין 12:00-14:00.

  1. הסבב הראשון מיועד לסטודנטים שרשומים להרצאה של יום א' בשעות 14:00-16:00
  2. הסבב השני מיועד לסטודנטים שרשומים להרצאה של יום א' בשעות 16:00-18:00
  3. החומר שיועבר בשני הסבבים הוא זהה. אנא בואו רק לסבב אליו אתם רשומים כדי להמנע מעומס בכיתה!

בתרגול נפתור שאלות ממבחני עבר.
אם יש לכם שאלות ספציפיות שברצונכם שנפתור שלחו אותן במייל בימים הקרובים לצוות המתרגלים:
li.ca.uat.tsop|cimsalab#li.ca.uat.tsop|cimsalab, li.ca.uat.sc|nigob.neb#li.ca.uat.sc|nigob.neb, li.ca.uat.liam|1pmaon#li.ca.uat.liam|1pmaon


(15 Jan 2019 09:35)

תרגיל מספר 4 נבדק

שלום לכולם,

תרגיל מספר 4 נבדק והציונים עלו לאתר.

בעמוד הראשי של הקורס ב- moodle פורסם מפתח הניקוד עבור ההערות האישיות שקיבלתם וסקריפט הבדיקה. כמו כן פורסם משוב מילולי מפורט לגבי שאלה 3 סעיף א' 2.

מספר הערות:

  1. נחזור ונדגיש כי אין להגיש תרגיל הכתוב בכתב יד אלא אם כן קיבלתם אישור מיוחד לכך.
  2. נבקש לא להגיש את התשובות לשאלות בגוף קובץ השאלות, להקפיד על עימוד ברור ומסודר ולסדר את סדר התשובות על פי סדר השאלות בתרגיל

המעוניינים לערער על ציונם חייבים לעשות כך בכפוף להוראות הערעור (ראו באתר את מסמך appeals.pdf) עד לתאריך ה-12.01.2019. ערעורים שאינם לפי ההנחיות לא יבדקו.

שימו לב: כתובת המייל לערעורים היא moc.liamg|1001sc.uat#moc.liamg|1001sc.uat, יש לערער אך ורק למייל זה.

צוות הקורס.


(05 Jan 2019 08:43)

פורסם תרגיל 6

שלום לכולם,

תרגיל מספר 6 פורסם ומופיע באתר הקורס.

מועד הגשת תרגיל זה הינו ה- 15.1.19.

הפורומים הרלוונטיים לתרגיל ייפתחו בקרוב.

כמו תמיד, טסטר בסיסי מצורף לקובץ השלד וניתן להריצו על ידי הפקודה: test()‎

שימו לב:

1. בקרוב נעלה גרסה מעודכנת לתרגיל, עם שתי שאלות בונוס בנושאים Error Correction ותמונות.
שאלות הבונוס יאפשרו לקבל ציון מעל 100 שייחשב בממוצע ציוני התרגילים.

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

3. אפשר וכדאי לפתור את כל השאלות הללו כבר אחרי ההרצאה הרלוונטית (אין צורך לחכות לתרגול).
בהצלחה,
צוות הקורס.


(31 Dec 2018 15:53)

חדש! משוב אוטומטי עבור שאלה 5ג' בתרגיל 5

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

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

בדומה למשוב המילולי שאתם מקבלים בסוף כל תרגיל (למשל, על שאלה 5ג' בתרגיל 3), הוספנו כעת את האפשרות לקבל משוב מיידי ואוטומטי על הקוד שלכם (שאינו כולל בדיקת תקינות הקוד). בתרגיל הנוכחי, המשוב יינתן למימוש הפונקציה find של המחלקה Dict.

איך זה עובד?
מתחת לתיבת ההגשה של תרגיל 5 במודל מופיע לינק בשם "משוב אוטומטי לשאלה 5ג'".
1. בלחיצה על הלינק ייפתח חלון חדש של מערכת בשם Codeboard (סביבת פיתוח אינטרנטית). אין צורך לעשות login למערכת!
2. בחלונית שנפתחה, בחרו בקובץ UserFunc.py שבצד שמאל
3. הדביקו את הקוד של מחלקת Dict כולה, כולל הפונקציה find אותה הייתם צריכים לממש
4. לחצו Run ואח״כ לחצו Submit

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

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

אם אתם נתקלים בבעיות או שיש לכם שאלות לגבי המערכת, אנא הציפו אותן בפורום של התרגיל הרלוונטי (שאלה 5 בתרגיל בית 5).

שימו לב - ברשותכם עוד כשלושה ימים עד מועד ההגשה של תרגיל 5. ניצול של מנגנון המשוב עד מועד ההגשה בהחלט יכול להשפיע על טיב הקוד שלכם ולכן גם להשפיע על הציון הסופי שתקבלו בתרגיל!

בהצלחה,
צוות הקורס.


(30 Dec 2018 11:43)

עדכון נוסף לגבי תרגיל 5

שלום לכולם,

נערך תיקון נוסף בקבצי תרגיל 5.

1. לקובץ השלד נוסף הקוד החסר לשאלה 6א. כמו כן נוספו טסטים מתאימים לסעיף זה וכן תוקנו הטסטים של שאלה 5.

2. בקובץ ה pdf תוקנה ההגדרה הראשונית של חפיפה בשאלה 5 (השינוי מודש בירוק כמו גם השינויים הקודמים שנעשו בקובץ זה).

כדי לפצות על אי הנוחות הוספנו יום נוסף למועד ההגשה.

מועד ההגשה החדש הינו ה 2.1.19.

אנא דאגו להוריד את הקבצים החדשים!

שבוע טוב,
צוות הקורס.


(23 Dec 2018 19:45)

עדכון קבצי תרגיל 5

שלום לכולם,

העלנו לעמוד תרגילי הבית קובץ pdf וקובץ שלד מעודכנים עבור תרגיל 5.

הקבצים החדשים כוללים את השינויים הבאים:

1. בקובץ ה pdf ישנו תיקון בקוד המופיע בשאלה 3ג'. התיקון מודגש בצהוב.

2. בקובץ השלד נעשו שני תיקונים לפונקציה test: האחד בבדיקה של __lt__ בשאלה 1א, והשני בבדיקה של lca_many בשאלה 3ג.

אנא דאגו להוריד את שני הקבצים החדשים מהאתר.

סוף שבוע נעים,

צוות הקורס.


(21 Dec 2018 10:30)

תרגיל מספר 5 פורסם

שלום לכולם,

תרגיל מספר 5 פורסם ומופיע באתר הקורס.

מועד הגשת תרגיל זה הינו ה- 1.1.19.

הפורומים הרלוונטיים לתרגיל ייפתחו בקרוב.

כמו תמיד, טסטר בסיסי מצורף לקובץ השלד וניתן להריצו על ידי הפקודה:

test()

בהצלחה,
צוות הקורס.


(18 Dec 2018 12:53)

עדכון לקובץ השאלות של תרגיל 4

הנוסחא האינדוקטיבית לבנייה של מטריצת Hadamard הושמטה מקובץ ה-PDF, העלנו קובץ חדש ובו נמצאת הנוסחא.

נא ודאו שאתם עובדים על הקובץ העדכני.


(06 Dec 2018 17:29)

עדכון לקובץ השלד של תרגיל 4

סדר השאלות בקובץ השלד של תרגיל 4 אורגן מחדש כדי לתאום לסדר השאלות במסמך ה-PDF.
כמו כן, הפרמטר step_sizes היה רשום בקובץ השלד בטעות כ-distances.

העלנו עדכון לקובץ השלד אשר טיפלה בשתי הבעיות הללו, אנא הורידו את הגרסא העדכנית.


(04 Dec 2018 17:07)

תרגיל מספר 4 פורסם

שלום לכולם,

תרגיל מספר 4 פורסם ומופיע באתר הקורס.

מועד הגשת תרגיל זה הינו ה- 18.12.

הפורומים הרלוונטיים לתרגיל ייפתחו בקרוב.

כמו תמיד, טסטר בסיסי מצורף לקובץ השלד וניתן להריצו על ידי הפקודה test()z (בלי z).

בהצלחה,
צוות הקורס.


(03 Dec 2018 15:42)

תרגיל מספר 3 פורסם

שלום לכולם,

תרגיל מספר 3 פורסם ומופיע באתר הקורס.

מועד הגשת תרגיל זה הינו ה- 3.12.

הפורומים הרלוונטיים לתרגיל 3 ייפתחו בקרוב.

שימו לב שבסוף קובץ השלד מופיעה הפונקציה test, שמטרתה לוודא שהקוד שכתבתם עובר כמה בדיקות נכונות בסיסיות עבור מספר קלטים אפשריים. דאגו להריץ אותה (באמצעות קריאה ישירה לפונקציה test) ובדקו שהיא רצה בצורה תקינה. בודקי התרגילים יריצו את התרגיל שלכם על קלטים נוספים ויבדקו מקרי קצה מגוונים.

בהצלחה,

צוות הקורס.


(19 Nov 2018 17:28)

תרגיל מספר 2 פורסם

שלום לכולם,

תרגיל בית מספר 2 פורסם באתר הקורס /http://tau-cs1001-py.wikidot.com.

מועד הגשת תרגיל זה הינו ה- 19/11/2018.

התרגיל כולל שימוש ב containers של פייתון (מילון ו-set). הנה קישור לחמישה שקפים שמסבירים כיצד להשתמש ב containers האלו. בנוסף, בהרצאה הקרובה ביום רביעי נעבור בקצרה על השקפים הללו.

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

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

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

בהצלחה,

צוות הקורס.


(05 Nov 2018 08:29)

תרגולי השלמה ברביעי הקרוב

שלום לכולם,

תרגולי יום שלישי (של מיכל) לא יתקיימו מחר בגלל יום הבחירות. נקיים תרגולי השלמה במקום ההרצאות של יום רביעי.

תרגולי ההשלמה יתקיימו ברביעי בשעות ובכיתה של ההרצאות. כלומר תרגול אחד בין 10 ל- 12, ותרגול זהה בין 12 ל- 14.

סטודנטים שהגיעו לתרגולי יום שני השבוע לא צריכים להגיע ברביעי לשעות ההשלמה.

הבהרה: לא תתקיים הרצאה בשעות אלו! ההרצאה הבאה תתקיים ביום ראשון.

בברכה,

צוות הקורס


(29 Oct 2018 11:26)

תיקון טעות בשאלה בשאלון הנהלים

שלום לכולם,
התגלתה טעות בשאלון הנהלים שגרמה לכך שלא ניתן יהיה לענות נכונה על שאלה אחת בשאלון.
הטעות תוקנה וכעת השאלון תקין!

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

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

בברכה,
צוות הקורס.


(25 Oct 2018 08:00)

שאלון הנהלים זמין ב moodle

שלום לכולם,

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

שימו לב שהמועד האחרון למילוי השאלון הינו שבועיים מהיום, לא יינתנו הארכות.

בהצלחה,

צוות הקורס.


(24 Oct 2018 15:47)

תגבור שעות קבלה בימים הקרובים

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

שעות הקבלה ביום רביעי (23/10):
מיכל - 18:00-19:00, בניין שרייבר, חדר 18מ' (בקומת המרתף, הוראות הגעה מדויקות לחדר ימסרו במייל למי שיבקש להגיע)
בן - 16:00-18:00, בניין שנקר, חדר 404
נעם - 16:00-18:00, בניין שנקר, חדר 304

שעות הקבלה ביום חמישי (24/10):
מיכל - 13:00-14:00, בניין שרייבר, חדר 18מ' (בקומת המרתף, הוראות הגעה מדויקות לחדר ימסרו במייל למי שיבקש להגיע)

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

אם אין ביכולתכם להגיע לשעות הקבלה הרשומות, תאמו שעת קבלה במייל עם המתרגל אליו אתם רשומים.

כולם מוזמנים לשעות הקבלה, בפרט סטודנטים בלי רקע קודם בתכנות.

סמסטר נעים לכולם, מ-עכ-שיו-!


(23 Oct 2018 19:01)

תיקון לתרגיל 1 שאלה 3

שימו לב כי העלנו עדכון למסמך ה-PDF של תרגיל 1. בשאלה 3 הבהרנו כי יש להתייחס למספר רווחים בין מילים כאל רווח יחיד. שינוי זה השפיע גם על שורות הפלט של הקובץ output.txt. נא הורידו את הקובץ העדכני.


(16 Oct 2018 15:42)

ביטול תרגולים עד להודעה חדשה

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

סגל הקורס.


(15 Oct 2018 04:10)

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

שלום לכולם,

תרגיל בית מספר 1 פורסם באתר הקורס /http://tau-cs1001-py.wikidot.com.

מועד הגשת תרגיל זה הינו ה- 28/10/2018. שימו לב שניתן לענות כבר עכשיו על חלק משאלות התרגיל וניתן יהיה לענות על התרגיל במלואו לאחר התרגול הראשון.
באם יתעורר הצורך בהתאם לשביתת הסגל הזוטר נדחה את תאריך ההגשה.

מטרת התרגיל היא היכרות עם פייתון, IDLE ואלמנטים בסיסיים בתכנות.

שימו לב שבסוף קובץ השלד מופיעה הפונקציה test, שמטרתה לוודא שהקוד שכתבתם עובר כמה בדיקות נכונות בסיסיות עבור מספר קלטים אפשריים. דאגו להריץ אותה (באמצעות קריאה ישירה ל ()test אחרי לחיצה על F5) ווודאו שהיא רצה בצורה תקינה. בודקי התרגילים יריצו את התרגיל שלכם על קלטים נוספים ויבדקו מקרי קצה מגוונים.

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

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

בהצלחה,

צוות הקורס.


(14 Oct 2018 16:16)






Forums (see tips on the right ----->)

Do not forget to click "preview" before posting your message!



New: Exam forum



All forums



Recent Forum Posts:

מבחן אביב 2018 מועד א' שאלה 2א: Re: מבחן אביב 2018 מועד א' שאלה 2א

By Noam P on 16 Jan 2019 14:49

That is not the LZ representation of the strings. Try running the code from class on the strings and examine the results.

מבחנים משנים קודמות: Re: מבחנים משנים קודמות

By Noam P on 16 Jan 2019 14:40

אין לנו פתרונות למבחנים משנים קודמות (מלבד הפתרונות שכבר נמצאים באתר)

fingers list length: Re: fingers list length

By Ben Bogin on 15 Jan 2019 12:17

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

מבחן אביב 2018 מועד א' שאלה 2א: מבחן אביב 2018 מועד א' שאלה 2א

By shaul barkan on 14 Jan 2019 16:45

In the question i'm asked to compute the compression rate in LZ algorithm of a string of the form "abc"*k for 0<k<10
Its not clear to me what kind of answer is expected. There doesn't seem to be a closed expression for this value as a function of k.
The intermediate forms look like this:

k=1:
[a,b,c]
k=2:
[a,b,c,(3,3)]
k=3:
[a,b,c,(3,6)]
k=4:
[a,b,c,(3,6),(3,3)]
k=5:
[a,b,c,(3,6),(3,6)]
k=6:
[a,b,c,(3,6),(6,9)]
k=7:
[a,b,c,(3,6),(6,12)]
k=8:
[a,b,c,(3,6),(9,15)]
k=9:
[a,b,c,(3,6),(9,18)]

Was this what i was supposed to do and then calculate the compression rate for each one? (clearly a posteriori its not so difficult because it doesn' change a lot with k but is there a way to see for example the jump from k=3 to k=4 before calculating?)

מבחנים משנים קודמות: מבחנים משנים קודמות

By Yuval on 14 Jan 2019 13:12

אפשרי להעלות גם את הפתרונות של המבחנים שהעלתם לאתר?

fingers list length: fingers list length

By jakov on 14 Jan 2019 11:32

מדוע מאתחלים את רשימות טביעות האצבע להיות ארוכות יותר מהטקסט ב1? זה לא חסר טעם? הרי טביעת האצבע היא לכל הפחות תהיה באורך 1 לכן ניתן להסתפק
ברשימה באורך של הטקסט

תודה

הא"ב בסעיף ב,:

By shay on 14 Jan 2019 11:13

כן הבנתי..זה בערך אותו עיקרון לאן שחתרתי רק שחשבתי שהוגדר עבורינו הא"ב, אבל תמיד אפשר לעשות chr..
תודה רבה!

הא"ב בסעיף ב,:

By roy on 14 Jan 2019 11:04

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

הא"ב בסעיף ב,:

By shay on 14 Jan 2019 10:39

בכל מקרה נראה לי שפשוט אגדיר את כל התווים האפשריים..

הא"ב בסעיף ב,:

By shay on 14 Jan 2019 10:33

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

הא"ב בסעיף ב,:

By roy on 14 Jan 2019 10:14

היי שי,
אין צורך לדעת את הא' ב' אלא רק את הקשר שבין כל קוד למשקל שניתן לו.
לצורך העניין, אם לקוד "010" יש משקל 5, אין זה משנה האם התו שקודד הוא 'a' או '$' או לחילופין כל תו אחר.
כל מה שצריך לדעת הוא האם הקוד שניתן לכל תו (לא ידוע) בעל משקל מסוים מקנה את הקידוד האופטימאלי.
.נוסף על כך, אנחנו לא יודעים מהו הטקסט הנבדק ולכן אין לנו שום מידע אודות התווים הקיימים בו

הא"ב בסעיף ב,:

By Shay on 14 Jan 2019 09:09

[[div style="direction:rtl;"]]
זה תלוי במימוש, עבורי זה כן משנה, הקידוד ברשימת הקלט תלוי בא״ב הזה(או חלק ממנו) וכדי לדעת את הקידוד יעיל ביותר אני צריך לדעת את הא״ב הזה.
לצורך העניין גם אפשר לייעל בדרך זו מעט ולא להשתמש בקוד בסעיף א אלא ברעיון דומה לו…
בכל מקרה אשמח למענה

הא"ב בסעיף ב,:

By Amit Sharon on 13 Jan 2019 23:23

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

הא"ב בסעיף ב,: הא"ב בסעיף ב,

By shay on 12 Jan 2019 20:45

היי, אשמח לדעת אם הא"ב שמקודד בשאלה זה רק אותיות קטנות באנגלית או גם גדולות או כל ה-ascii ?

שאלה לגבי הקוד:

By Maya Farber Brodsky on 10 Jan 2019 05:49

לא ניתן להשתמש ב010, כי הקלט צריך להיות בגודל byte בדיוק כלומר 8 ביטים.
ניתן לקבל byte שמורכב רק מאפסים כקלט לקוד, ואז כדי להפוך אותו למילת קוד יהיה צריך להוסיף לו את 4 ספרות הביקורת 1000 (כי יש 8 אפסים) ולקבל את מילת הקוד 000000001000.

שאלה לגבי הקוד: שאלה לגבי הקוד

By le me on 09 Jan 2019 21:23

שאלה כללית , האם ניתן לשלוח byte שמורכב רק מאפסים?
והאם יש הבדל בין bytes שמורכבים מכמויות שונות של אפסים?
והאם אפשר לשלוח byte כזה:
010
או זה שווה ל10?
תודה רבה :D

סעיף ב:

By Amit Sharon on 09 Jan 2019 00:10

כן

סעיף ב:

By Hidai on 08 Jan 2019 08:17

ועבור למפל זיו כל תו מקבל 8 ביטים וכל חזרה 18 ביטים כרגיל כמו שראינו?

5א:

By roni on 07 Jan 2019 18:29

תודה רבה!

סעיף ג': Re: סעיף ג'

By Ben Bogin on 07 Jan 2019 18:27

כמו בסעיף ב'.

5א:

By Ben Bogin on 07 Jan 2019 18:24

אכן הכוונה היא למרחק מינימלי בין שתי מילים תקינות, כפי שהוצג בתרגול (או יוצג מחר, למי שבקבוצה של מיכל)

קלט חוקי לסעיף ב: Re: קלט חוקי לסעיף ב

By Ben Bogin on 07 Jan 2019 18:21

אפשר להניח ששתי הרשימות לא יהיו ריקות

5א:

By roy on 07 Jan 2019 17:25

אני חושב שהכוונה במרחק של הקוד הוא למרחק האמינג המינימאלי עבור שתי מילות קוד(כלומר בין שתי מילים הכוללות את ארבע ספרות הביקורת בהתאם
לכמות האפסים בbyte המידע)
כך שלא קיימות שתי מילות קוד בעלות מרחק האמינג קטן יותר.

אשמח לאישור מצוות הקורס שזאת אכן הכוונה

5א: 5א

By roni on 07 Jan 2019 13:10

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

סעיף ג': סעיף ג'

By odedk on 07 Jan 2019 09:28

האם בסעיף ג' אנחנו מתבקשים להחזיר בכל פעם את השורה הבאה במשולש (כמו בסעיף ב') או שהפונקציה תחזיר בכל פעם רשימה שמייצגת משולש עם עוד שורה?

Possible error with factorial position:

By odedk on 07 Jan 2019 09:20

האם בסעיף ג' אנחנו מתבקשים להחזיר בכל פעם את השורה הבאה במשולש או להחזיר כל פעם משולש שכולל את השורה הבאה?

תרגיל בית 5: Re: תרגיל בית 5

By Ben Bogin on 07 Jan 2019 06:45

כן, ההגשות שמורות אצלינו גם אם הן לא מסומנות במודל.

תרגיל בית 5: תרגיל בית 5

By גילי on 06 Jan 2019 21:26

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

קלט חוקי לסעיף ב: קלט חוקי לסעיף ב

By Shiran Shaharabani on 06 Jan 2019 02:29

האם שתי רשימות ריקות הן קלט חוקי בסעיף ב?

תרגיל בית 5: Re: תרגיל בית 5

By Ben Bogin on 05 Jan 2019 15:45

כרגע לא, במידה ויהיה צורך נעדכן בהקדם (בינתיים כדאי לוודא שקיים אצלכם עותק של ההגשה).

סעיף ג' - ווידוא:

By Ben Bogin on 05 Jan 2019 15:43

אכן אין טסטר אבל יש דוגמה לשימוש ב-has_match בפונקציה find_longest. ניתן להפעיל את את find_longest על דוגמאות טקסט קצרות ומבוקרות כדי לוודא שhas_match פועלת כפי שהיא אמורה (בדומה לדוגמת הקוד לעיל)

תרגיל בית 5: תרגיל בית 5

By topaz on 05 Jan 2019 14:16

משום שנמחקה הגשת תרגיל בית מספר 5 מהמודל,
יש להגישו בשנית?

סעיף ג' - ווידוא:

By Alon on 05 Jan 2019 11:59

תודה!!

סעיף ד' - רשימת כל תתי המחרוזות המשותפות באורך המקסימלי: Re: סעיף ד' - רשימת כל תתי המחרוזות המשותפות באורך המקסימלי

By Ben Bogin on 05 Jan 2019 11:22

הפונקציה find_longest מחזירה את אורך המחרוזת המשותפת הארוכה ביותר. יש להשתמש בפונקציה זו כדי ליצור רשימה של כל המחרוזות המשותפות הארוכות ביותר

סעיף ג' - ווידוא: Re: סעיף ג' - ווידוא

By JMDG on 05 Jan 2019 10:52

בניתי לעצמי סוג של טסט, לא מקיף במיוחד אבל יכול לעזור:

 def tst(n): txt1 = "scdfvgbhnjmk,lkjmnhbgvfcdsxfdfv" txt2 = "rfvghhvderfghfdfvjjbfdd" fng2 = [0 for i in range(len(txt2) + 1)] fng1 = [0 for i in range(len(txt1) + 1)] for i in range(1, n): extend_fingerprints(txt1, fng1, i) extend_fingerprints(txt2, fng2, i) print(has_match(txt1, txt2, fng1, fng2, n, 2 ** 17 - 1)) #result for n=4 should be "fdfv" 

סעיף ד' - רשימת כל תתי המחרוזות המשותפות באורך המקסימלי: Re: סעיף ד' - רשימת כל תתי המחרוזות המשותפות באורך המקסימלי

By JMDG on 05 Jan 2019 10:42

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

Possible error with factorial position: Re: Possible error with factorial position

By Ben Bogin on 05 Jan 2019 08:47

This is correct and will be updated, thanks.

סעיף ב: Re: סעיף ב

By Ben Bogin on 05 Jan 2019 08:38

אין חובה לבדוק באופן מפורש, צריך רק לוודא שהקריאה לפונקציה הינה תקינה
(לא נריץ את הפונקציה עם קלט לא תקין בבדיקות)

סעיף ג: Re: סעיף ג

By Ben Bogin on 05 Jan 2019 08:31

יש להשתמש ב-r כדי להגביל את גודל טביעת האצבע המקסימלית

סעיף ב: Re: סעיף ב

By Ben Bogin on 05 Jan 2019 08:08

אכן

סעיף ב: סעיף ב

By hidai on 04 Jan 2019 13:39

רק לוודא, קידוד של המחרוזת הנתונה לפי האפמן היא לפי קוד (שמבוסס על עץ האפמן) שמבוסס על
freq?

סעיף ג' - ווידוא: סעיף ג' - ווידוא

By Alon on 04 Jan 2019 12:47

אין טסט לסעיף ג, וגם אין דוגמת הרצה. כדי להימנע מאי-הבנות, יש אפשרות להסויף דוגמת הרצה או טסט בסיסי?

huffman:

By Ben Bogin on 04 Jan 2019 07:29

לא, יש להגיש רק את קובץ השלד

סעיף ג: Re: סעיף ג

By Ben Bogin on 04 Jan 2019 07:28

אכן הכוונה לחמש אותיות, תודה

סעיף ג: סעיף ג

By Shiran on 03 Jan 2019 19:43

[[div style="direction:rtl;"]]
בסעיף ג' התבקשנו
"תנו דוגמה לקורפוס שמכיל את כל אחד מארבעת תווי הא"ב" אני מניחה שהכוונה היא ל5 האותיות אבל רק רוצה לוודא.‚‚

[[/code]]

Possible error with factorial position: Possible error with factorial position

By elior on 03 Jan 2019 17:57

I think there might be an error for the placement of the factorial in the denominator regrading (n-r!) -> (n-r)! ( equation A_nr )

סעיף ד' - רשימת כל תתי המחרוזות המשותפות באורך המקסימלי: סעיף ד' - רשימת כל תתי המחרוזות המשותפות באורך המקסימלי

By Maayankes on 03 Jan 2019 15:11

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

huffman:

By Muhammad on 03 Jan 2019 12:47

הקוד שלי עושה import ל- huffman.py.
צריך להגיש גם את הקובץ הזה?

סעיף ג: סעיף ג

By fani on 03 Jan 2019 08:43

האם בהכרח צריך להשתמש בr? באותו אופן,אני יכולה להגדיר את גודל טבלת הhash להיות המקסימום של הערכים +1 של fingers1 לדוגמא.
בנוסף,במהלך המעבר על fingers2 אם ניתקל בטביעת אצבע שגדולה מגודל טבלת הhash אז בהכרח היא לא תת מחרוזת משותפת לכן אין צורך לבדוק אותה.
אפשר כך לממש את הפונקציה ללא שימוש בr.
האם אני מפספסת משהו?
תודה.

סעיף ב: סעיף ב

By fani on 03 Jan 2019 07:32

האם צריך לבדוק האם table_size הוא תקין? כלומר יכול לקרות מצב בו לערך בfingersprints לא יהיה תא להיכנס אליו בtable_hash כיוון שהיא לא תהיה בגודל המתאים.

טבלת ההאש בסעיף ב': Re: טבלת ההאש בסעיף ב'

By Ben Bogin on 03 Jan 2019 07:28

בשאלה זו אין בעיה אם רוב התאים ריקים.

הפונקציה אכן מקבלת את ה-fingerprints עצמן ומציבה אותן בטבלה כפי שהוגדר בסעיף, בדוק שנית את ההגדרה והדוגמה

ascii לעומת unicode דחיסה מעל: Re: ascii לעומת unicode דחיסה מעל

By Ben Bogin on 03 Jan 2019 07:15

ההתייחסות היא ל-ascii בלבד

huffman: Re: huffman

By Ben Bogin on 03 Jan 2019 07:12

אכן יש לייבא את הקובץ ולהשתמש לפחות באחת הפונקציות ששם.
ההבנה של צורת השימוש בקובץ היא עיקר השאלה - אמליץ לעבור שוב על החלק בהרצאה שמדבר על קוד אופטימלי

טבלת ההאש בסעיף ב': טבלת ההאש בסעיף ב'

By Muhammad on 02 Jan 2019 18:56

בסעיף ב' מבקשים שהאיבר ה- j יהיה רשימת האינדקסים i שעבורם fingers[i] == j
הדרישה הזאת מאלצת אותנו להשתמש בטבלה שהגודל שלה הוא כגודל ה- fingerprint הגדול ביותר לפחות. במצב הזה אנחנו מגדירים טבלה שרוב התאים בה יהיו ריקים.
בנוסף, מהדוגמא באותו סעיף אפשר להבין שהפונקציה מקבלת את ה- fingerprints לאחר ביצוע פעולת מודולו על גודל הטבלה, אבל בתיאור השאלה כתוב שהפונקציה מקבלת את ה- fingerprints עצמם.
אשמח אם תבהירו את הנקודה הזאת.

huffman: huffman

By Itai on 02 Jan 2019 18:07

האם בסעיף ב' יש לייבא את הקובץ
huffman.py
על מנת להשוות לקוד האפמן אופטימלי?
אם כן - לא ברור לי איזה פונקציה להפעיל משם, ובאיזה קורפוס מדובר…
תודה

סיכום תרגול אחרון: Re: סיכום תרגול אחרון

By Ben Bogin on 02 Jan 2019 14:59

העלינו את התרגול לאתר

סעיף א' טעות בשם הפרמטר לפונקציה: Re: סעיף א' טעות בשם הפרמטר לפונקציה

By Ben Bogin on 02 Jan 2019 14:51

נכון, תודה. ניתן להתעלם מההבדל בשם.

לא מצאתי את קבצי הטקסט עבור סעיף ד: Re: לא מצאתי את קבצי הטקסט עבור סעיף ד

By Ben Bogin on 02 Jan 2019 14:49

תודה, תוקן (עכשיו קבצי הטקסט נמצאים בקובץ ה-zip)

סיכום תרגול אחרון: סיכום תרגול אחרון

By Itai on 02 Jan 2019 14:22

היי, אודה לכם אם תעלו לאתר את סיכום התרגול האחרון (בנושא קארפ-רבין וכו'), תודה

ascii לעומת unicode דחיסה מעל: ascii לעומת unicode דחיסה מעל

By roy on 02 Jan 2019 14:03

האם סעיף א' מתייחס ללמפל זיו מעל ascii או unicode?

האם דחיסת חזרה באורך אחד ושניים לא משתלמת גם בunicode?
אם אני מבין נכון דחיסת חזרה בכל אורך שהוא לוקחת 18 ביטים, לעומת ייצוג תו בunicode שלוקח 20

אני שואל זאת כיוון שבפתרון לסעיף א שמצאתי עדיף לדחוס עם סף של 4 לעומת 3 גם אם הדחיסה היא מעל ascii וגם אם מעל unicode,
אך אם הדחיסה היא בunicode אני חושב שעדיף לדחוס עם סף של 2 ולא 3 או 4

לא מצאתי את קבצי הטקסט עבור סעיף ד: לא מצאתי את קבצי הטקסט עבור סעיף ד

By נעה on 02 Jan 2019 13:19

שני קבצי הטקסט של הספרים לא היו בקבצים של התרגיל, תוכלו בבקשה להוסיף אותם?

סעיף ה:

By Michal-kleinbort on 02 Jan 2019 12:11

נכון מאד. למעשה מעיקרון שובך היונים אם n>m אז בהכרח יהיו תאים שיכילו יותר מאיבר אחד

סעיף ה:

By Amit Sharon on 01 Jan 2019 23:03

אי אפשר "להגדיר" שאין התנגשויות בין התאים במקרה הממוצע כי אז את מניחה שבהכרח n<=m.
הכוונה במקרה הממוצע הוא שפונקציית הhash מפזרת את האיברים באופן אחיד (פחות או יותר) בין התאים, כך שיש n/m איברים בכל תא.
בדוגמת תעודות הזהות שדניאל נתן בכיתה ראינו שאם ניקח 80 סטודנטים ונפזר אותם על טבלה בגודל 10 לפי ספרה אחרונה של תעודת הזהות נקבל בערך 8 תלמידים לכל תא (וזה המקרה הממוצע).

סעיף ה:

By fani on 01 Jan 2019 20:37

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

סעיף א' טעות בשם הפרמטר לפונקציה: סעיף א' טעות בשם הפרמטר לפונקציה

By Maayankes on 01 Jan 2019 20:16

בקובץ הpdf כתוב ששם הפרמטר הוא row אך בקובץ השלד רשום lst

סעיף א - טעות בשם המשתנה בחתימת הפונקציה: Re: סעיף א - טעות בשם המשתנה בחתימת הפונקציה

By Ben Bogin on 01 Jan 2019 16:38

תוקן, תודה (בשני המקרים מדובר באורך החלון, ההבדל הוא בשם המשתנה בלבד)

לא מוסבר מה הפונקציה make_hashtable אמורה לעשות: Re: לא מוסבר מה הפונקציה make_hashtable אמורה לעשות

By Ben Bogin on 01 Jan 2019 16:32

תודה, גרסה מתוקנת שמסבירה את הפונקציה הועלתה.

בדיקת תקינות קלט בשאלה 1: Re: בדיקת תקינות קלט בשאלה 1

By Michal-kleinbort on 01 Jan 2019 15:03

זה בהחלט נחוץ ורצוי למען שלמות הקוד ותקינותו.
לא נבדוק על קלטים שאינם מהמחלקה Binary

פונקציה Add:

By Michal-kleinbort on 01 Jan 2019 15:00

לא. הכוונה היא שלא תשתמשו כלל בפונקציה int() במימוש המתודה.

סעיף ה:

By Michal-kleinbort on 01 Jan 2019 14:57

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

סעיף ג: Re: סעיף ג

By Michal-kleinbort on 01 Jan 2019 14:55

לא קריא. נא לישר לצד ימין

סעיף א - טעות בשם המשתנה בחתימת הפונקציה: סעיף א - טעות בשם המשתנה בחתימת הפונקציה

By Anon on 01 Jan 2019 14:24

שלום,
נראה כי בשאלה 2 כתוב בחתימת הפונקציה (בקלטים שהיא מקבלת) length במקום t.

סעיף ג:

By Noam P on 01 Jan 2019 13:43

היי תמיר,
האם העתקת את המחלקה כולה לקודבורד?
אם כן - אנא שלח לי במייל (מופיע במידע כללי באתר) את הפתרון שלך לסעיף זה כדי שנוכל לבדוק את הנושא לעומק.

שלד לתרגיל 6:

By Ben Bogin on 01 Jan 2019 07:27

תודה על העדכון! השלד המצורף אכן היה לא נכון,
תוקן עכשיו.

שלד לתרגיל 6:

By Itai on 01 Jan 2019 06:57

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

סעיף ה:

By eliran ohel on 31 Dec 2018 22:52

[[div style="direction:rtl;"]]
במקרה הממוצע יש לכל תת רשימה בטבלה
n/m
איברים, כאשר n
הוא סה"כ האיברים בטבלה
ו-m
הוא גודל הטבלה
זאת בניגוד למקרה הגרוע בו כל האיברים נכנסים לאותה תת רשימה בתא אחד בטבלה (ובעצם לא השגנו כאן שום דבר)

אשמח לבדיקת התשובה ע"י צוות הקורס על מנת לוודא שאין טעות בדברים שלי :)

סעיף ב:

By eliran ohel on 31 Dec 2018 22:47

[[div style="direction:rtl;"]]
תת הרשימה נמצא ב
value
של כל
Node.
נסי להשתמש ב
value.next

סעיף א':

By eliran ohel on 31 Dec 2018 22:45

נשמע כאילו יש לך "נקסט" עודף באיזשהו מקום שמקדם אותך מקום אחד ברשימה. בכל מקרה, ממליץ לך לבדוק ב
http://pythontutor.com

Flatten linked list - רשימה ריקה:

By eliran ohel on 31 Dec 2018 22:43

לא חושב שיש הבדל בין רשימה ריקה בתחילת הרשימה או באמצע הרשימה - העיקר שבסוף תצא רשימה ארוכה שמכילה את איחוד כל שאר הרשימות. שים/י לב שאת/ה לא אמור/ה להחזיר ערך, אלא לשנות את רשימת הקלט.

סעיף ב:

By eliran ohel on 31 Dec 2018 22:37

כן

שלד לתרגיל 6: שלד לתרגיל 6

By Eyal on 31 Dec 2018 21:02

לתשומת לבכם,השלד של תרגיל 6 עדיין לא הועלה

Flatten linked list - רשימה ריקה: Flatten linked list - רשימה ריקה

By יובל on 31 Dec 2018 19:48

בהנחה כי ערך האיבר הראשון בה"כ ברשימה המקוננת מכיל רשימה ריקה - מה מצופה מאיתנו לעשות? להתעלם למעשה מאיבר זה?
ואם זה האיבר היחיד ברשימה המקוננת? מצופה שנחזיר רשימה ריקה?

סעיף ג:

By tamir on 31 Dec 2018 16:41

המשוב האוטומטי מוציא הודעת שגיאה
Your solution was successfully submitted. Problem in qualitative response. Please retry, or contact course author. Failed to get qualitative feedback

סעיף ב: סעיף ב

By fani on 30 Dec 2018 21:13

האם אפשר להשתמש באופרטור "=" אשר מוגדר במחלקה של Binary?

סעיף א': סעיף א'

By Denis Mus on 30 Dec 2018 20:21

בסוף merge_ordered_lists אני מבצע
self = הרשימה שיצרתי
מיד אחרי זה אני מדפיס את self ומקבל 5,10,20,20,30,30 כנדרש.
כשאני מדפיס לאחר מכן את הערך של L שעליו בוצעה הפעולה הזאת, מודפס הכל חוץ מ-5.
אני מקבל מכך שגיאה בtest().
L הוא הרי self, איך יכול להיות שמתקבלים ערכים שונים?
אשמח לעזרה, תודה.

סעיף ב: סעיף ב

By גילי on 30 Dec 2018 19:31

אני לא מצליחה להבין איך אני יכולה לגשת לאיברי תת-הרשימה המקושרת. ברגע שאני מגדירה מצביע לתחילת הרשימה לדוגמא הnext שלו יהיה לאיבר הבא ולא לתת הרשימה.

בדיקת תקינות קלט בשאלה 1: בדיקת תקינות קלט בשאלה 1

By ויקי on 30 Dec 2018 18:03

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

פונקציה Add:

By Ido on 29 Dec 2018 22:55

שלום,
בסעיף א נאמר כי במימוש פעולה add אין להשתמש בפעולה int בשביל לחבר את המספרים הבינאריים.
האם ניתן להשתמש בפעולה int בשביל להמיר כל תו במחרוזת למשתנה מסוג int לצורך המשך הבדיקות ומימוש הפעולה?
תודה

סעיף ג: סעיף ג

By eliran on 29 Dec 2018 22:47

היי,

האם בסעיף ג מניחים כי הvalue הוא תמיד באינדקס 1 והמפתח תמיד באינדקס 0? אחרת אין איך לשלוף את הvalues ..

סעיף ה: סעיף ה

By fani on 29 Dec 2018 15:52

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

הגשת תרגיל 5: Re: הגשת תרגיל 5

By Michal-kleinbort on 29 Dec 2018 15:10

טופל

טסטר של שאלה 6: Re: טסטר של שאלה 6

By Michal-kleinbort on 29 Dec 2018 15:10

הטסטר נכון.
על הפונקציה להחזיר את המחרוזת

סעיף ב חישוב הסיבוכיות: Re: סעיף ב חישוב הסיבוכיות

By Michal-kleinbort on 29 Dec 2018 15:09

ההגדרה מופיעה בתחילת השאלה (בשורה השניה)

סעיף ג: Re: סעיף ג

By Michal-kleinbort on 29 Dec 2018 15:08

לא.
לא ניתן להניח כזה דבר.

סעיף ה - מקרה ממוצע: Re: סעיף ה - מקרה ממוצע

By Michal-kleinbort on 29 Dec 2018 15:07

Yes. We consider the average case as explained for the complexity analysis of hash tables.

סעיף ז - עבור איזה אורך רישה לבצע את השוואת הזמנים: Re: סעיף ז - עבור איזה אורך רישה לבצע את השוואת הזמנים

By Michal-kleinbort on 29 Dec 2018 15:05

הכוונה היא שתעבדו עם מחרוזות ארוכות באורך 1000 לפחות כל אחת.
שווה להריץ עם ערכים שונים של k כדי לקבל מסקנות ולהבין מה השפעתו.

סעיף ב - סיבוכיות - התייחסות לפעולת ההשמה ברשימה: Re: סעיף ב - סיבוכיות - התייחסות לפעולת ההשמה ברשימה

By Michal-kleinbort on 29 Dec 2018 15:02

הי ענבל,
נסי לפרט יותר למה התכוונת. עדיף שתצרפי קטע קוד.

שאלה ב - סיבוכיות: Re: שאלה ב - סיבוכיות

By Michal-kleinbort on 29 Dec 2018 14:59

התייחסו למקרה הגרוע בתור המקרה שבו נשווה את המספר המירבי של תווים בין זוג מחרוזות, בהנחה שההשוואה נעשית תו אחרי תו (בדיוק כפי שהתבקשתם להניח)

סעיף א:

By Michal-kleinbort on 29 Dec 2018 14:54

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

סעיף ב: Re: סעיף ב

By Michal-kleinbort on 29 Dec 2018 14:50

ממש לא!
בחישוב סיבוכיות הזמן יש לקחת בחשבון את כל הפעולות שמתבצעות

פונקציה Add: Re: פונקציה Add

By Michal-kleinbort on 29 Dec 2018 14:48

נא לעמד את הטקסט מימין לשמאל על מנת שיהיה קריא.
הוראות כיצד לעשות זאת מופיעות בצד ימין של כל דף באתר

סעיף ד - סיבוכיות של פעולת השוואה: Re: סעיף ד - סיבוכיות של פעולת השוואה

By Michal-kleinbort on 29 Dec 2018 14:47

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

סעיף א:

By roni on 28 Dec 2018 20:57

אבל כאשר ניצור
node
חדש לכל איבר ב
other
סיבוכיות הזיכרון כבר לא תהיה
O(1)
לא?

סעיף ב: Re: סעיף ב

By Maayankes on 28 Dec 2018 17:33

אם כך, האם ניתן להתעלם מסיבוכיות הזמן של העתקת רשימה כשמבצעים חיבור רשימות עם האופרטור +?

printree.py: printree.py

By topaz on 27 Dec 2018 18:29

איפה נמצא הקובץ של printree.py?

סעיף ג: סעיף ג

By fani on 27 Dec 2018 18:04

האם יוצאים מנקודת הנחה שבכל תא יהיה רק מפתח מסוג אחד? כלומר שפונקצית hash לא מכניסה שתי מפתחות שונים לאותו תא בטבלה?

הגשת תרגיל 5: הגשת תרגיל 5

By Itai Weiss on 26 Dec 2018 19:02

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

פונקציה Add: פונקציה Add

By ido on 26 Dec 2018 18:45

שלום,
בסעיף א נאמר כי במימוש פעולה add אין להשתמש בפעולה int בשביל לחבר את המספרים הבינאריים.
האם ניתן להשתמש בפעולה int בשביל להמיר כל תו במחרוזת למשתנה מסוג int לצורך המשך הבדיקות ומימוש הפעולה?
תודה

סעיף ה - מקרה ממוצע: סעיף ה - מקרה ממוצע

By Roy on 26 Dec 2018 18:35

Does "average case" mean that the keys are equally spread in the hash table (for example, in a size n table - each cell contains one key)?

סעיף ז - עבור איזה אורך רישה לבצע את השוואת הזמנים: סעיף ז - עבור איזה אורך רישה לבצע את השוואת הזמנים

By אנונימי on 26 Dec 2018 07:40

בסעיף ז' מבקשים מאיתנו לבצע השוואת זמנים בין 3 פונקציות עבור רשימת מחרוזות באורך של לפחות 1000 תווים.
האם הכוונה היא שגם אורך הרישה שאנחנו בודקים יהיה לפחות 1000 תווים?
הרי בסופו של דבר חישוב הhashים לא תלוי באורך המחרוזות אלא באורכי הרישה והסיפות שאנחנו משווים והריצה על כל המחרוזות תלוי באורך הרשימה ולא באורך כל מחרוזת. כלומר, אורכי המחרוזות לא אמורים להשפיע לי על זמני הריצה. מה שמשפיע על זמני הריצה הוא כמות המחרוזות ואורך הרישה.

סעיף א' יודפס \ יחזיר Table is full: Re: סעיף א' יודפס \ יחזיר Table is full

By Michal-kleinbort on 26 Dec 2018 07:10

הקוד צריך להחזיר את המחרוזת (כלומר הבדיקה בטסטר נכונה)

איבר משותף לשתי הרשימות: Re: איבר משותף לשתי הרשימות

By Michal-kleinbort on 26 Dec 2018 07:04

יש לפעול כמו במיזוג רשימות רגיל: כלומר הערך יופיע פעמיים ברשימה הסופית.
והבהרה: הכוונה היא לשני איברים שונים עם אותו הערך ולא לזוג רשימות שמכילות את אותו ה Node.

סעיף א: Re: סעיף א

By Michal-kleinbort on 26 Dec 2018 07:01

כן, אבל מהי סיבוכיות הזמן של יצירת Node חדש בהינתן ה value?

סעיף א: Re: סעיף א

By Michal-kleinbort on 26 Dec 2018 06:59

לא בטוחה שהבנתי את שאלתך.
עליכם לממש את __call__ בהתאם להנחיות. שם מוסבר גם מה להחזיר במקרה שהקלט שניתן אינו בתחום ההגדרה.

גישה ישירה לאובייקט הdomain: Re: גישה ישירה לאובייקט הdomain

By Michal-kleinbort on 26 Dec 2018 06:56

נא לערוך את ההודעה (או פשוט לכתוב אותה מחדש) כך שתוצג מימין לשמאל.
הסבר כיצד לעשות זאת מופיע בצד ימין של כל עמוד באתר

סעיף ד: Re: סעיף ד

By Michal-kleinbort on 26 Dec 2018 06:24

המפתחות ברשימה לא בהכרח שונים זה מזה

5c - additional func:

By Michal-kleinbort on 26 Dec 2018 06:23

yes

5c - additional func:

By Michal-kleinbort on 26 Dec 2018 06:23

You should aim for the most efficient solution, and remember that you are required to fill in only two lines of code.

סעיף א: Re: סעיף א

By Michal-kleinbort on 26 Dec 2018 06:18

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

סעיף ד: סעיף ד

By Anon on 25 Dec 2018 15:27

האם אני יכולה לתאר מצב בו כל המפתחות ברשימה keys_lst זהים זה לזה?
או שהם בהכרח שונים (למרות שזה לא מצויין בקובץ)?

תודה.

adding the __ne__ (!=) operator to Binary:

By רוניה on 25 Dec 2018 15:20

Sorry, it was Python 2.7

5c - additional func:

By יובל on 25 Dec 2018 13:47

are we allowed to use functions defined for binary_search_tree / tree_node?

סעיף ב - סיבוכיות - התייחסות לפעולת ההשמה ברשימה: סעיף ב - סיבוכיות - התייחסות לפעולת ההשמה ברשימה

By Inbal on 25 Dec 2018 09:41

האם יש להתייחס בחישוב הסיבוכיות לפעולות ההשמה ברשימה?

תודה,
ענבל

סעיף א: סעיף א

By ירדן on 25 Dec 2018 09:40

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

שאלה ב - סיבוכיות: שאלה ב - סיבוכיות

By Inbal on 25 Dec 2018 09:07

בשאלה 5 סעיף ב נכתב: (אני פיצלתי את זה ל1 ו2)
ציינו מה היא סיבוכיות הזמן של הפתרון הזה במקרה הגרוע, כתלות בn וk במונחים של O(…).
1. הניחו כמובן כי השוואה בין שתי מחרוזות באורך k דורשת O(k) פעולות במקרה הגרוע.
2. ציינו גם מתי מתקבל המקרה הגרוע, בהנחה שהשוואת מחרוזות עוברת תו תו בשתי המחרוזות במקביל משמאל לימין, ומפסיקה ברגע שהתגלו תווים שונים.

אני לא מבינה מה הכוונה למקרה הגרוע ב1. אין מקרה גרוע בהשוואה בין שתי מחרוזות אם אני לא מניחה שהן משוות אות אחר אות. תמיד ההשוואה תהיה בסיבוכיות O(k) במקרה 1, לכן לא הבנתי מה הכוונה ל"השוואה בין שתי מחרוזות באורך k דורשת O(k) פעולות במקרה הגרוע".

תודה,
ענבל

סעיף א: סעיף א

By natali on 24 Dec 2018 23:52

האם נדרש בשאלה לממש את הפונקציה בתחום שבו היא חיובית?
כי רשום בשאלה לממש פונקציה בעלת תום הגדרה שבה הפונקציה מעל ציר הממשים.

גישה ישירה לאובייקט הdomain: גישה ישירה לאובייקט הdomain

By יובל on 24 Dec 2018 20:58

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

איבר משותף לשתי הרשימות: איבר משותף לשתי הרשימות

By fani on 24 Dec 2018 20:36

אם בשתי הרשימות המקוננות קיים איבר עם אותו ערך,האם להכניס אותו ממוין(כלומר שבתוצאה הסופית הוא יופיע פעמיים) או להשאיר אותו פעם אחת?

טסטר של שאלה 6: טסטר של שאלה 6

By noa davidovitch on 24 Dec 2018 19:55

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

סעיף א: סעיף א

By fani on 24 Dec 2018 19:27

האם יצירת Node חדש נכלל בחישוב הסיבוכיות?

סעיף ב חישוב הסיבוכיות: סעיף ב חישוב הסיבוכיות

By noa davidovitch on 24 Dec 2018 19:24

בסעיף כתוב לתת חסם כתלות ב-m ו/או n. מי זה n?
אני לא מוצאת הגדרה שלו בשאלה.
תודה

5c - additional func:

By Omer on 24 Dec 2018 19:12

1. Can we use recursion in lca_many?
2. Are inline if-else conditions are allowed then?

adding the __ne__ (!=) operator to Binary:

By רוניה on 24 Dec 2018 19:02

Hi,
I ran this without the ne operator, and both answers were True.

5b my code returns None i have no idea why:

By shaul barkan on 24 Dec 2018 15:30

Hallelujah!

סעיף ד - סיבוכיות של פעולת השוואה: סעיף ד - סיבוכיות של פעולת השוואה

By Inbal on 24 Dec 2018 14:41

שלום,
עבור שורה כזו בקוד:
if (div == 1)
כלומר, שורה של תנאי + השוואה
האם הסיבוכיות היא O(1)?
האם אנחנו צריכים להתייחס לפעולות השמה (a=2)כפעולות בסיבוכיות O(1)?

תודה

סעיף א' יודפס \ יחזיר Table is full: סעיף א' יודפס \ יחזיר Table is full

By אנונימי on 24 Dec 2018 14:10

בשאלה עצמה כתוב "אם לאחר m ניסיונות כנ"ל לא נמצא תא פנוי – יודפס Table is full"
אולם, הקוד tester שהועלה בודק האם הוחזר "Table is full"
האם הקוד צריך להחזיר את המחרוזת או להדפיס אותה באמצעות print?

בשאלה int() bin() שאלה עקרונית-שימוש בפונק:

By Michal-kleinbort on 24 Dec 2018 13:37

ניתן גם לממש ללא קריאה ל bin

5c - additional func: Re: 5c - additional func

By Michal-kleinbort on 24 Dec 2018 13:35

You are not allowed to write a new method and use in order to find x,y.
You are also not allowed to add an additional line of code.

5b my code returns None i have no idea why:

By Michal-kleinbort on 24 Dec 2018 13:32

Try to think of the return value of:
lst1.append(lst2)

בשאלה int() bin() שאלה עקרונית-שימוש בפונק:

By Sid Feiner on 23 Dec 2018 21:41

חובה להשתמש ב-bin?
כי אפשר גם לעשות:
"{0:b}".format(num)

ומקבלים את זה בלי 2 התוים העודפים בהתחלה, אז זה חוסך את המניפולציה הזו.

5c - additional func: 5c - additional func

By Sid Feiner on 23 Dec 2018 21:38

In question 5c, we have to fill in x and y to send over to the lca function.
Are we allowed to write a new method and use it in order to pick the correct x and y?
Are we allowed to add an additional line in lca_many before picking x and y?
Or should we pick x and y only with methods that already exist?

שימוש בפונקציית len:

By Anon on 23 Dec 2018 20:15

תודה!

סעיף א, כתיבת הקוד: Re: סעיף א, כתיבת הקוד

By Michal-kleinbort on 23 Dec 2018 19:49

הקבצים החדשים זמינים בעמוד תרגילי הבית.
דאגו בבקשה להוריד אותם

שימוש בפונקציית len:

By Michal-kleinbort on 23 Dec 2018 19:13

ניתן להשתמש בכל אחת מהן אם קוראים להן מתוך מתודות במחלקה. ואולי הדבר הנכון היה להגדיר את האורך כשדה נוסף במחלקה, אבל לא עשינו זאת במימוש הנוכחי.
קריאה ל length תבצע קריאה נוספת ל len(self.s) אז למעשה תהיה קצת יותר מסורבלת מקריאה ישירה ל len(self.s), אבל אני מניחה שלא מדובר ב overhead רציני מבחינת הזמן.

שימוש בפונקציית len:

By Anon on 23 Dec 2018 17:27

כלומר, אני מבינה שאם אני רוצה להשתמש בlen אז אני צריכה להפעיל אותה על self.s ואם אני רוצה להשתמש בlength אז אני צריכה להפעיל אותה self.length(), השאלה היא מה נהוג, והאם שימוש באחת הפונקציות נחשב תקין יותר ולמה.

תודה

שימוש בפונקציית len: שימוש בפונקציית len

By Anon on 23 Dec 2018 17:06

במחלקה binary הנתונה יש פונקציה בשם length שמחזירה בעצם את len(self).
אם אני צריכה להשתמש באורך של אובייקטים במחלקה binary בפונקציה אחרת במחלקה (לדוגמא בit) , האם עדיף להשתמש בפונקציה length של המחלקה או בפונקציה len של פייתון?
מה המשמעות של השימוש בכל אחת מהפונקציות?

תודה

סעיף א, כתיבת הקוד: Re: סעיף א, כתיבת הקוד

By Michal-kleinbort on 23 Dec 2018 16:23

זה נכון. סליחה.
אעלה קובץ שלד וטסטר עדכניים בעוד כמה שעות.

5b my code returns None i have no idea why:

By shaul barkan on 23 Dec 2018 16:15

I'm sorry for hinting at a solution i will try not to do this in the future. But given that I already did that could you tell me please where is the problem with this function?

5b my code returns None i have no idea why:

By shaul barkan on 23 Dec 2018 16:14

I already did that. It helped me in the sense that I can pinpoint to the exact step where the function returns the value None and its the step where it should return "[node]". I also tried to insert a print before this return statement to check that i'm not returning None and it still returned None. I'm really at a loss here.

סיבוכיות של חישוב מודול: Re: סיבוכיות של חישוב מודול

By Michal-kleinbort on 23 Dec 2018 16:02

בהחלט. כתוב במפורש בשאלה "הניחו כי פעולות אריתמטיות לוקחות זמן קבוע"

5b my code returns None i have no idea why: Re: 5b my code returns None i have no idea why

By Michal-kleinbort on 23 Dec 2018 15:48

I suggest to print the returned value from the recursive calls before trying to append a node to it.
This will help you find the problem.

In the future, please avoid posting code that may hint on a solution. Instead, you may ask one of the TA-s privately.

סעיף ב: Re: סעיף ב

By Michal-kleinbort on 23 Dec 2018 15:36

לא.
בנוסף, פונקציה זו צריכה להיות רקורסיבית ולא פונקציית מעטפת.

הרכבה מוגדרת היטב: Re: הרכבה מוגדרת היטב

By Michal-kleinbort on 23 Dec 2018 15:35

עליכם לדאוג לכך במימוש ה domain של תוצאת ההרכבה

סעיף ג: Re: סעיף ג

By Michal-kleinbort on 23 Dec 2018 15:30

ניתן, למרות שזה לא הכרחי.
אני ממליצה לנסות לממש את הפונקציה הזו כפונקציה רקורסיבית.

compose: Re: compose

By Michal-kleinbort on 23 Dec 2018 15:26

התשובה לשאלתך נמצאת בקובץ ה pdf: גם בהגדרה שכתובה בסעיף וגם בדוגמאות ההרצה.
כדי לוודא מיהו self ומיהו other ניתן להוסיף הדפסה (ולדאוג למחוק אותה לפני הגשת התרגיל).

adding the __ne__ (!=) operator to Binary: Re: adding the __ne__ (!=) operator to Binary

By Michal-kleinbort on 23 Dec 2018 15:21

That's surprising.
As far as I am aware of, in Python 3 operator !=, if not implemented, returns the opposite of operator ==.
Do you get the same issue with the following code?

 a = Binary("100") b = Binary("10") a != b # should be False c = Binary("10") a != c # should be True 

בשאלה int() bin() שאלה עקרונית-שימוש בפונק:

By Michal-kleinbort on 23 Dec 2018 15:17

תלוי במתודה. ב largest_power_of_two מותר, אך זה לא הכרחי .

גישה לשדות פנימיים של רשימה בסעיף ב: גישה לשדות פנימיים של רשימה בסעיף ב

By אנונימי on 22 Dec 2018 16:16

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

השאלה נשאלת מאחר ופעולות מסויימות כמו גישה לאיבר ומחיקה הן לא יעילות O(loc) לדוגמה הקוד הבא (בהינתן אובייקט רשימה מקושרת lst):

 for i in range(len(lst)): print(lst[i]) 

רץ הסיבוכיות O(n^2) לעומת ריצה באמצעות עדכון מצביע לnext שרץ בO(n)

סעיף א, כתיבת הקוד: סעיף א, כתיבת הקוד

By roy on 21 Dec 2018 22:59

היכן יש לכתוב את הקוד בסעיף א? אין בשלד כותרת לשאלה 6, וגם אין טסטר לשאלה 6.

הרכבה מוגדרת היטב: הרכבה מוגדרת היטב

By Yuval on 21 Dec 2018 22:46

האם ניתן להניח שההרכבה של הפונקציות מוגדרת היטב? כלומר שהטווח של g מוכל בתחום של f?

סיבוכיות של חישוב מודול: סיבוכיות של חישוב מודול

By Itamar on 21 Dec 2018 16:17

הי,
האם ניתן להניח כי חישוב של n%m הינו בעל סיבוכיות
O(1)?

תודה,
איתמר

בעיה בפונקציית טסט בתרגיל 5:

By Michal-kleinbort on 21 Dec 2018 10:32

New (and fixed) PDF and skeleton files are now available. Please download the new files.

בעיה בפונקציית טסט בתרגיל 5:

By Michal-kleinbort on 21 Dec 2018 10:03

Correct.
I will send an update soon.

סעיף ג: סעיף ג

By Roni Perry on 20 Dec 2018 21:32

***

האם ניתן להתייחס ל
exp_rec
כפונקציית מעטפת, שקוראת לפונ רקורסיבית אחרת?
תודה!

סעיף ג: סעיף ג

By roni on 20 Dec 2018 21:29

האם ניתן להשתמש להתייחס ל
exp_rec
כפונקציית מעטפת, שקוראת לפונ רקורסיבית אחרת?

compose: compose

By roni on 20 Dec 2018 15:32

האם הכוונה שהפונקצייה תחזיר את
self(other(x))
או
other(self(x))
תודה

בעיה בפונקציית טסט בתרגיל 5:

By עודד on 20 Dec 2018 12:56

I think there's a problem with the test for question 3:

 if bin_tree.lca(1,3) == None or \ bin_tree.lca(1,3).key != 1 or \ bin_tree.lca(9,3) == None or\ bin_tree.lca(9,3).key != 8: print("error in Binary_search_tree.lca") lst = bin_tree.all_ca(1, 3) if lst == None or sorted([item.key for item in lst]) != [1, 8, 10]: print("error in Binary_search_tree.all_ca") if bin_tree.lca_many([8,9,3]) != 8 or \ bin_tree.lca_many([8,9,3,30]) != 10: print("error in Binary_search_tree.lca_many") 

When testing lca_many - should there be a ".key" on the left-hand side like in the test for lca? Right now the tester tries to compare a node with the numbers 8 and 10 and prints an error.

בעיה בפונקציית טסט בתרגיל 5:

By Itai Weiss on 19 Dec 2018 20:06

אשמח לשאול גם שאלה לגבי התרגיל באותה הזדמנות.
בשאלה 1 כשצריך לממש
radd
האם הפרמטר
other
הוא מימין ל+ או משמאלו?
תודה

בעיה בפונקציית טסט בתרגיל 5: Re: בעיה בפונקציית טסט בתרגיל 5

By Michal-kleinbort on 19 Dec 2018 19:45

צודק. נעלה קובץ שלד חדש בקרוב ונשלח על כך עדכון.
תודה.

בעיה בפונקציית טסט בתרגיל 5: בעיה בפונקציית טסט בתרגיל 5

By Itai on 19 Dec 2018 10:13

לאחר ששאלתי את אמיר על העניין הוא הנחה אותי לכתוב בפורום אך טרם פורסם פורום של תרגיל 5.
ההשוואות בפונקציה טסט בקובץ השלד מתבצעות כך:
a<b == True
מה שקורה זה שבפועל יש שגיאה בגלל השוואה של
b
שהוא אובייקט מסוג בינארי לבין
True
יש לתחום בסוגריים את כל הביטויים בפונקציית טסט מהסוג:
(a<b)
כדי שההשוואות יתבצעו כנדרש

אודה לכם אם תעלו קובץ שלד חדש בהתאם

עץ הרקורסיה: Re: עץ הרקורסיה

By Noam P on 18 Dec 2018 22:05

לא

עץ הרקורסיה: עץ הרקורסיה

By eliran on 18 Dec 2018 20:40

היי,

האם זה משנה באיזה צד אני עושה את הקריאה הרקורסיבית הראשונה ובאיזה את השנייה (ענף שמאלי או ימני) כל עוד אני שומר על עקביות מבחינת צדדים?

פרוטוקול סעיף ב:

By eliran on 17 Dec 2018 15:33

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

פרוטוקול סעיף ב: פרוטוקול סעיף ב

By eliran on 17 Dec 2018 15:31

היי,

רשמתי פרוטוקול לסעיף ב, ובו כל אחד מחשב את הסוד המשותף בשלב אחר,
אם בוב למשל מבצע חישוב ל g^b (לצורך המשך הפרוטוקול) רק לאחר שהוא מבצע את g^abc, האם g^abc נמחק?
האם על כל המשתתפים לחשב את הקוד המשותף רק בסוף הפרוטוקול?

סעיף ב: סעיף ב

By fani on 16 Dec 2018 20:50

האם עבור סכום אפס הפונקציה יכולה להחזיר []?

סעיף א2 - סיבוכיות: סעיף א2 - סיבוכיות

By ענבל on 16 Dec 2018 14:49

בסעיף נכתב "לפחות O(n) תתי רשימות שונות בL.."
אז אם נגיד אני מוצאת דרך ליצור n^2 תתי רשימות, האם זה עונה על התנאי?
תודה

סעיף א: Re: סעיף א

By Noam P on 15 Dec 2018 17:52

כמה הבהרות:

  1. אין דבר כזה "רשת מאובטחת". אנחנו מניחים שכל פרט מידע שנשלח בין שני משתתפים גלוי ל-Eve.
  2. בפרט, כשאליס ובוב שולחים לקרול את הסוד g**(ab)z הסוד הזה גלוי ל-Eve.
  3. המטרה היא אכן לייצור מפתח משותף לשלושת המשתתפים. מאחר והמפתחות של הזוגות נחשפו במהלך הפרוטוקול הם כמובן לא שמישים יותר (הם "הוקרבו") וזה תקין לחלוטין כל עוד שלושת המשתתפים יכולים בסופו של הפרוטוקול לחשב מפתח סודי חדש שיהיה ידוע רק לשלושתם.

עיגול שברים:

By Noam P on 15 Dec 2018 17:45

ניתן להניח כי s ואיברי L הם מספרים שלמים (טיפוס int)

פלט ממוין: Re: פלט ממוין

By Noam P on 15 Dec 2018 17:44

לא

Q3,part b: Re: Q3,part b

By Noam P on 15 Dec 2018 17:43

No need to preserve the order of the sublist.

subset_sum: Re: subset_sum

By Noam P on 15 Dec 2018 17:43

אין להניח ש-s שונה מאפס ואין להניח שאיברי L הם אי-שליליים.
אם s הוא אפס הפונקציה הנתונה אכן תחזיר מיד True מאחר וקיימת תת-רשימה של L שסכומה אפס והיא הרשימה הריקה.

סעיף ב: Re: סעיף ב

By Noam P on 15 Dec 2018 17:41

לא

תיקון הקובץ:

By Noam P on 15 Dec 2018 17:40

כתוב בעמוד שבו נמצאים קבצי שיעורי הבית

עיגול שברים:

By roy on 15 Dec 2018 17:26

טוב זה יצא בלתי קריא לחלוטין, סליחה!!
כאשר אני קורא לפונקציה עם הרשימה [0.8, 9] והסכום 9.8, המשתנה 'אס' שווה ל (16-)^10*6.661338147750939 ולכן הפונקציה מחזירה 'נון'
כיצד ניתן להתמודד עם זה? האם מותר לעגל את המספר לכמה ספרות אחרי הנקודה?

עיגול שברים: עיגול שברים

By roy on 15 Dec 2018 17:18

עבור (subset_sum_search([9, 0.8], 9.8 המשתנה s כאשר לוקחים 9 ו0.8 שווה 6.661338147750939e-16 ולכן הפונקציה מחזירה None.
כיצד ניתן להתמודד עם זה? האם מותר לעגל את המספר לכמה ספרות אחרי הנקודה?

סעיף ג' חלק 2 - stack overflow:

By Noam P on 15 Dec 2018 16:57

השאלה כבר נשאלה ונענתה

פלט ממוין: פלט ממוין

By Yuval on 15 Dec 2018 15:59

האם תת הרשימה שחוזרת כפלט צריכה להיות בסדר מסוים כלשהו? סדר ממוין או בסדר המתאים לרשימה המקורית?
תודה

Q3,part b: Q3,part b

By Elior on 15 Dec 2018 11:57

Do we have to preserve the order of the sub-list ? for example if the sublist is [1,2] for s= 3, does [2,1] count as correct as well?
Thank you

subset_sum: subset_sum

By fani on 15 Dec 2018 09:00

בפונקציה הנתונה בסעיף א ,האם אנחנו מניחי שהסכום המבוקש לא יכול להיות אפס וכל איברי הרשימה הנתונה הם אי שליילים?
כי אם הסכום המבוקש הוא 0 הפונקציה מיד מחזירה True, מה שלא בהכרח מתקיים

סעיף ב: סעיף ב

By fani on 15 Dec 2018 08:47

האם התת רשימה שאנחנו מחזירים חייבת להיות ממויינת?

תיקון הקובץ:

By eliran on 14 Dec 2018 23:59

האם ידוע מתי נערך השינוי האחרון בקובץ השלד? :/

סעיף א: סעיף א

By eliran on 14 Dec 2018 23:57

היי,

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

סעיף ג' חלק 2 - stack overflow:

By Maayan on 14 Dec 2018 22:34

סליחה, הכוונה היא לסעיף ד'

סעיף ג' חלק 2 - stack overflow: סעיף ג' חלק 2 - stack overflow

By Maayan on 14 Dec 2018 22:29

כדי לחשב את הקלט המקסימלי עבורו הפונקציה השניה בסעיף רצה בפחות משניה הייתי חייב לשנות את עומק הרקורסיה המקסימלי אך לאחר מכן נתקלתי בשגיאה של Stack overflow.
זה בסדר לרשום כתשובה את הקלט הכי גדול שלא מרים את השגיאה?

סעיף ג' זמני ריצה: Re: סעיף ג' זמני ריצה

By Noam P on 14 Dec 2018 20:44

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

שאלה 3א: Re: שאלה 3א

By Noam P on 14 Dec 2018 20:42

כן

סעיף ג' זמני ריצה: סעיף ג' זמני ריצה

By Denis on 14 Dec 2018 19:40

שלום.
אני בניתי את 2 הפונקציות כנדרש, אחת עם ממואיזציה והשני בלי, ושתיהן עובדות.
כאשר אני לוקח זמנים אז שתי הפונקציות עובדות בכמעט אותו הזמן, אך בממוצע הפונקציה עם ממואיזציה פועלת בטיפה לאט יותר. אפילו לגדלים גדולים (לדוגמא n=200) ההבדל הוא ל-slow 0.57 שניות ול-fast 0.58 שניות.
האם זה בסדר שעם ממואיזציה זה עובד לאט יותר? אני מבין שאין הגיון בלשנות את הקוד, הרי הנקודה בממואיזציה היא להשאיר את הקוד כמו מקודם רק לשנות את דרך העברת הנתונים ברקורסיה לאופן בו נשמרים הנתונים - לדוגמא כאן במילון.
דבר נוסף, כתבתם שיכול להיות שעבור אחד הקלטים בטבלה התוכנית תרוץ במשך יותר מדקה, אצלי בקלט של 200
זמן הריצה היה חצי שנייה.
בטבלה דיברתם על קלטים שהכי גדול מביניהם הוא 30, הקוד שכתבתי הוא פעוט יעיל או שפיספסתי פה משהו? הקוד עושה את מה שהוא צריך לעשות וערכתי את בדיקת ה-tester המצורפת.
תודה.

שאלה 3א: שאלה 3א

By Roni on 14 Dec 2018 15:12

האם ניתן לעשות פונקצייה רקורסיבית שתקבל את אותה פרמטרים בדיוק כמו
min_path
?
זאת אומרת, באותה מידה היא לא הייתה חייבת להיות מעטפת…
minpath2(n,penalties,step_sizes)

תיקון הקובץ: Re: תיקון הקובץ

By Noam P on 14 Dec 2018 11:14

התיקון היחיד לקובץ ה-PDF היה בהוספת הנוסחה האינדוקטיבית ועימוד.
בקובץ השלד היו מספר שינויים ויש לעבוד עם הקובץ העדכני.

תיקון הקובץ: תיקון הקובץ

By elir on 14 Dec 2018 09:39

היי,

האם חוץ מהנוסחה האינדוקטיבית להדמרד שהוספתם בשאלה 2 חל עוד שינוי בקובץ הPDF או קובץ הpy?
עבדתי עם הקבצים הקודמים וכעת שראיתי את הקובץ שמתי לב כי הוא מסודר קצת אחרת מבחינת מספור עמודים וכו' ..

זמן לינארי: Re: זמן לינארי

By Noam P on 14 Dec 2018 07:09

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

סעיף א2:

By Noam P on 13 Dec 2018 20:44

ישור של אנגלית בשורה בעברית, רק לתצוגה

סעיף א2:

By Denis on 13 Dec 2018 19:56

תודה רבה, יותר ברור עכשיו. רק מה זה הסימון של zz לפני ה(O(n ?

סעיף א2: Re: סעיף א2

By Noam P on 13 Dec 2018 19:47

בתשובה צריך להסביר איך, בהנתן מספר n כלשהוא:

  1. אתה בונה רשימה L עם n איברים (בלי חזרות)
  2. אתה בוחר s (הוא יכול להיות תלוי ב-n או לא, לפי בחירתך)
  3. יש O(n)zz תתי-רשימות שסכומן s ב-L

אם למשל בבחירה שלך יש תמיד 0.5n תתי-רשימות שמקיימות את התנאי זה תקין מאחר ומדובר בחסם הדוק ל-n.
כמובן שאי אפשר להניח שיש מספר כזה של תתי-רשימות, זה בדיוק התרגיל - לבנות ולהוכיח.

זמן לינארי: זמן לינארי

By fani on 13 Dec 2018 16:32

האם אמורים להתחשב בפעולות שרצות בזמן לינארי של b? האם זה אומר שהן רצות כמספר הביטים של b?

סעיף א: Re: סעיף א

By Noam P on 12 Dec 2018 15:00

לא, זו רק דוגמא

סעיף א: סעיף א

By eilon on 12 Dec 2018 13:52

האם רשימת הקנסות היא בסדר עולה כך ש
penelties[i]=i?

פונקצית מעטפת - סעיף א: Re: פונקצית מעטפת - סעיף א

By Noam P on 11 Dec 2018 21:42

חובה להשתמש בפונקציה כפונקצית מעטפת בשני הסעיפים (א' וב').
בסעיף א' אין הנחיות לגבי מימוש פונקצית המעטפת.
בסעיף ב' על פונקצית המעטפת לאתחל מילון שינתן כמשתנה לפונקציה הרקורסיבית.

פונקצית מעטפת - סעיף א: פונקצית מעטפת - סעיף א

By Yuval on 11 Dec 2018 20:54

האם יש הנחייה מסוימת לגבי מה פונקציית המעטפת צריכה לעשות? והאם יש בכלל חובה להשתמש ב-min_path כפונקציית מעטפת?

סעיף א':

By eilon on 11 Dec 2018 20:50

האם רשימת הקנסות היא בסדר עולה כך ש
penelties[i]=i?

שעת חונכות 09.12: Re: שעת חונכות 09.12

By Noam P on 11 Dec 2018 15:08

השבוע לא תתקיים שעת חונכות.

שאלה 2 סעיף ד: Re: שאלה 2 סעיף ד

By Noam P on 10 Dec 2018 21:41

אין צורך בממואיזציה

שאלה 2 סעיף ד: שאלה 2 סעיף ד

By shay on 10 Dec 2018 16:56

[[div style="direction:rtl;"]] רציתי לשאול האם יש צורך לבצע ממואיזציה בסעיף ד כדי לייעל את הקוד(בדומה למה שלמדנו בפיבונאצ'י) או שמספיק ליישם קוד שעובד אך מבצע את אותה רקורסיה מספר פעמים.. [[/div]]

רשימות ריקות כקלט- סעיף א: Re: רשימות ריקות כקלט- סעיף א

By Noam P on 10 Dec 2018 16:01

ניתן להניח שהמטריצות שתשלחנה ל-concat_vert, concat_hor אינן ריקות

סעיף ד:

By Noam P on 10 Dec 2018 16:01

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

סעיף ד:

By ארז on 10 Dec 2018 14:31

אז אם אני מבין נכון, אפשר במקום לתת את גודל הקלט שמוביל לריצה של שנייה לתת את גודל הקלט שרץ בלי לקרוס מרוב עומק הרקורסיה (מדובר בקלט שרץ ב0.16 שניות) האם אני מבין נכון?
לדווח על הקלט הזה כאילו הוא רץ בשניה, או לציין שהובהר בפורום שאפשר לתת את הערך המקסימאלי שאינו מוביל לקריסה, למרות שהוא רץ בזמן הרבה יותר מהיר משניה?

המטרה ברורה לי, אבל חשוב לי לענות נכון בהתאם למה ששואלים אותנו ולא לטעות בגלל אי הבנות כאלו

סעיף ד: Re: סעיף ד

By Noam P on 10 Dec 2018 14:23

במקרה שכזה אפשר לשנות את עומק הרקורסיה ל-5000 (לדוגמא), ולתת את ה-n הגדול ביותר עבורו הריצה הסתיימה בלי להפיל את המערכת.
המטרה היא לראות את הפער הגדול בין המימוש הרקורסיבי ללא הממואיזציה והמימוש עם הממואיזציה.

סעיף ד: סעיף ד

By ארז on 10 Dec 2018 11:44

שלום,
כחלק מהסעיף צריך לקבוע עבור איזה גודל הקלט הקריאה הבאה
min_path_faster(n, [i for i in range(n + 1)], [2*i + 1 for i in range(300)])
תחזור לאחר שנייה לכל היותר.
אני לא יכול לבדוק את זה: אני מגיע לעומק הרקורסיה המקסימאלי עבור קלאטים שלוקחים הרבה פחות משנייה.
אני יודע שאפשר לשנות את מקס עומק הרקורסיה. כשאני משנה את זה, אני בהחלט יכול להכניס קלטים גדולים יותר. אולם, מקס זמן הריצה שאני מגיע אליו עדיין הרבה יותר נמוך משנייה, עבור קלטים שאני מסוגל להכניס. מגודל מסוים של קלטים התוכנית שלי פשוט קורסת והקרנל מת. הקלטים האלו, שגורמים לתוכנית לקרוס, עדיין רצים בזמן נמוך יותר משמעותית משנייה.
כיצד עלי לענות על הסעיף?
תודה רבה!

רשימות ריקות כקלט- סעיף א: רשימות ריקות כקלט- סעיף א

By Yuval on 10 Dec 2018 07:39

עבור מקרה הקצה בו תישלח מטריצה ריקה לפונקציה concat_hor, הקלט יהיה מהצורה הבאה?


mat1 = [[]]
mat2 = [[]]

או שיתכן מקרה בו הקלט יהיה?


mat1 = []
mat2 = []

תודה

פונקציה מחזירה None: Re: פונקציה מחזירה None

By Noam P on 09 Dec 2018 12:06

הפונקציה print_mat היא פונקצית עזר לנוחיותכם, בדיקת הנכונות של הפונקציה צריכה להתבצע על הרשימה המקוננת עצמה.
בפרט, אנחנו לא נבדוק שימוש ב-print_mat.

פונקציה מחזירה None: פונקציה מחזירה None

By ליטל on 09 Dec 2018 11:48

היי,
בסעיפים א-ג הקוד שכתבתי עובד, אבל שימוש בפונקציה שאתם כתבתם
print_mat
מחזירה גם
None
בסוף הריצה. זה בסדר שזה מופיע בסוף הפלט?

סעיף ב: האם מותר לתאר פרוטוקול עם פחות פעולות חישוב?:

By Noam P on 07 Dec 2018 21:27

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

סעיף ב: האם מותר לתאר פרוטוקול עם פחות פעולות חישוב?:

By מיכל on 07 Dec 2018 14:14

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

סעיף א': Re: סעיף א'

By Noam P on 07 Dec 2018 12:12

לא

סעיף ב: האם מותר לתאר פרוטוקול עם פחות פעולות חישוב?: Re: סעיף ב: האם מותר לתאר פרוטוקול עם פחות פעולות חישוב?

By Noam P on 07 Dec 2018 12:11

כמובן, כל עוד מוכיחים כי הפרוטוקול תקין (כלומר - החישוב מתבצע כשורה ולא שולחים את הסוד בשום שלב)

סעיף א': סעיף א'

By ניקול on 07 Dec 2018 12:02

האם ניתן להניח שרשימת (step_sizes) הינה רשימה ממוינת?

סעיף ב: האם מותר לתאר פרוטוקול עם פחות פעולות חישוב?: סעיף ב: האם מותר לתאר פרוטוקול עם פחות פעולות חישוב?

By מיכל on 07 Dec 2018 10:37

האם מותר לתאר בסעיף ב פרוטוקול בו כל משתמש מבצע עד 3 פעולות
modular exponentiation
?(אבל יש משתמש/ים שמבצעים פחות)

סעיף א: Re: סעיף א

By Noam P on 07 Dec 2018 08:15

מאחר ו-NR מחזירה קירוב לשורש, גם equal כמובן תחזיר קירוב.
בנוסף, מאחר ו-NR משתמשת באקראיות, התוצאה של equal תהיה תלויה באקראיות זו ולכן התוצאה תשתנה מריצה לריצה.

שורה תחתונה - תקין, כל עוד התוצאה היא אכן קירוב של נקודת מפגש בין הפונקציות.

סעיף א: סעיף א

By fani on 06 Dec 2018 21:23

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

חישוב פעולות הכפל:

By Noam P on 06 Dec 2018 20:11

כן

חישוב פעולות הכפל:

By roy on 06 Dec 2018 19:34

אני הסברתי לא טוב את השאלה כנראה.

ספרות בכתיב בינארי n בעל a עבור a*a (power-כאשר אני מחשב את עלות הפעולה (ב
n^2 האם אני יכול להניח שהעלות היא ?

סעיף ג - איפה לכתוב את הפונקציות: סעיף ג - איפה לכתוב את הפונקציות

By Roy Arad on 06 Dec 2018 18:04

בסעיף זה מבקשים לכתוב פונקציות f_1 ו-f_2 כביטויי lambda בקובץ השלד.
איפה לכתוב אותן? פשוט כמשתנים גלובאליים בראש הקובץ?

חישוב פעולות הכפל: Re: חישוב פעולות הכפל

By Noam P on 06 Dec 2018 17:34

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

חסרה הגדרה למטריצת Hadamard: Re: חסרה הגדרה למטריצת Hadamard

By Noam P on 06 Dec 2018 17:27

הנוסחא אכן הושמטה, העלנו קובץ מתוקן. תודה!

חסרה הגדרה למטריצת Hadamard: חסרה הגדרה למטריצת Hadamard

By מיכל on 06 Dec 2018 13:53

בקובץ הPDF
לא מוצגת הנוסחא האינדוקטיבית למטריצת הדמר.

חישוב פעולות הכפל: חישוב פעולות הכפל

By roy on 05 Dec 2018 19:52

האם כאשר מחשבים את עלות פעולת הכפל האם יש לבדוק רק את פעולות הכפל הבינאריות המתקיימות בה או גם את פעולת החיבור?

למשל, האם עבור הדוגמה המוצגת בגוף השאלה כמות הפעולות הרלוונטית היא 12 או 19?

תודה

סעיף ג:

By Yarden on 04 Dec 2018 16:45

5**k

סעיף ג: סעיף ג

By Yarden on 04 Dec 2018 16:44

האם ייתכן שגודל הרשימה שנקבל כקלט יהיה גדול מ- 5k?

רשימה ריקה:

By Ben Bogin on 03 Dec 2018 11:26

בדיוק

סעיף ב:

By Ben Bogin on 02 Dec 2018 21:01

אורך המחרוזת הוא בדיוק k ובדוגמה הזו הוא 4, לכן המחרוזת הבאה לא תהיה aaa אלא aaab

מכאן ניתן להגיע למספר סידורי לכל מחרוזת

שאלה 4:

By Ben Bogin on 02 Dec 2018 20:43

כן, מכיוון שזה אכן חסר בהגדרת השאלה נוותר על הדרישה

שאלה 4:

By Eliran on 02 Dec 2018 18:42

היי,
זה לא מצויין בשאלה (אף אחד לא מודע לדרישה הזאת) ואנחנו לילה לפני הגשה … יש מקום להתחשבות ?

רשימה ריקה:

By Yuval on 02 Dec 2018 15:51

התכוונתי לסעיף א' - שם הפלט צריך להיות n/k רשימות ממוינות. הפלט המתאים במקרה זה הוא 0 רשימות ממוינות? כלומר רשימה ובה 0 רשימות []?

סעיף ב:

By גילי on 02 Dec 2018 14:20

אבל המספר נתון? או שאני צריכה להמציא ערכים? ברור לי שaaa יופיע לפני aab אבל איך לייצר את הערך הזה?

שאלה 4: Re: שאלה 4

By Ben Bogin on 02 Dec 2018 13:58

כן

סעיף ב:

By Ben Bogin on 02 Dec 2018 13:56

נסי להתחיל מהערך של המחרוזת הכי קטנה עבור k=4,
aaaa, ולחשוב מה תהיה המחרוזת ההבאה בסדר לפי השוואה לקסיקוגרפית כפי שהוגדר

שאלה 5 סעיף ג: Re: שאלה 5 סעיף ג

By Ben Bogin on 02 Dec 2018 13:55

לא

רשימה ריקה: Re: רשימה ריקה

By Ben Bogin on 02 Dec 2018 13:53

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

שאלה 5 סעיף ג: שאלה 5 סעיף ג

By OmriAvisar on 02 Dec 2018 08:30

ברשימה שצריך למיין בסעיפים ג וה ניתן להניח שאין חזרות ברשימה?

עזרה בהבנה של שאלה 5: Re: עזרה בהבנה של שאלה 5

By OmriAvisar on 02 Dec 2018 08:29

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

רשימה ריקה: רשימה ריקה

By Yuval on 02 Dec 2018 07:58

סעיף א' - כשמתקבלת רשימה ריקה, הערך המוחזר צריך להיות [[]] או []?
תודה

שאלה 4: שאלה 4

By eliran on 01 Dec 2018 22:51

היי,

לאורך כל השאלה לא מצויין כי יש לנמק ולהסביר את הקביעה של סיבוכיות הזמן והמקום, אלא רק לציין אותם. האם יש צורך לנמק/להסביר?

סעיף ב:

By גילי on 01 Dec 2018 19:40

אני לא מבינה איך הייצוג למילון מתבצע. נגיד אם אקבל את המספר 78 ואורך מחרוזת של 4 מה תהיה המחרוזת?

?סעיף ב' - צריך להוכיח חסם עליון הדוק: Re: ?סעיף ב' - צריך להוכיח חסם עליון הדוק

By Ben Bogin on 01 Dec 2018 17:35

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

סעיף ג: Re: סעיף ג

By Ben Bogin on 01 Dec 2018 17:33

רשימה חדשה

תקינות קלט: Re: תקינות קלט

By Ben Bogin on 01 Dec 2018 17:32

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

שאלה 4 סעיף ג:

By Ben Bogin on 01 Dec 2018 17:30

לא. שים לב שבשאלה הכוונה ב"איברים שונים" היא לאיברים שנמצאים במקומות שונים ברשימה, ולא לאיברים בעלי ערך שונה.

סעיף ב:

By Ben Bogin on 01 Dec 2018 17:26

לא הבנתי את השאלה שלך, 123 זה הייצוג של איזו מחרוזת?

סיבוכיות זיכרון: Re: סיבוכיות זיכרון

By Ben Bogin on 01 Dec 2018 17:23

אפשר להתייחס למשתנה שעובר על איברי הרשימה כאל משתנה שתופס זיכרון קבוע

סעיף ה:

By Ben Bogin on 01 Dec 2018 17:16

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

שאלה 4 סעיף ג:

By תימור on 01 Dec 2018 15:22

האם ניתן להניח שאין ערכים כפולים ברשימה?

?סעיף ב' - צריך להוכיח חסם עליון הדוק: ?סעיף ב' - צריך להוכיח חסם עליון הדוק

By [[div style="direcראם קישנבסקי on 01 Dec 2018 13:11

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

סעיף ב:

By גילי on 01 Dec 2018 10:54

אז אני לא כל כך מבינה, אם נתון K=4 אורך המחרוזת הוא 4 וN=123 זה הייצוג של המחרוזת לא?

תקינות קלט: תקינות קלט

By fani on 01 Dec 2018 10:15

בכל הסעיפים,האם יש צורך לבדוק שרשימות הקלט לא ריקות?

סיבוכיות זיכרון: סיבוכיות זיכרון

By fani on 30 Nov 2018 19:42

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

סעיף ה:

By Roni on 30 Nov 2018 15:00

כשמבקשים סיבוכיות זמן כלשהי, במקרה הזה
O((5^k)nk)
האם צריך בדיוק בסיבוכיות הזו? או שאם הסיבוכיות קטנה יותר זה גם טוב? כמו ש
O(n^2)=O(n^3)

2ג: Re: 2ג

By Ben Bogin on 30 Nov 2018 14:50

אי אפשר להניח ש-k הוא חזקה של 2.

סעיף ב: Re: סעיף ב

By Ben Bogin on 30 Nov 2018 14:47

k נתון כבר בהגדרת השאלה, לכן יש לממש פונקציה חד חד ערכית בהינתן k זה (ובלי שאפשר להחליף אותו)

אגב - נא להקפיד ליישר לימין את הטקסט כדי שהשאלה תהיה קריאה (הוספתי יישור בעריכה)

סעיף ג: סעיף ג

By hidai on 30 Nov 2018 10:51

בסעיף ג' הרשימה צריך להחזיר רשימה חדשה או שאפשר לשנות את הרשימה שמתקבלת?

סעיף ה: Re: סעיף ה

By Noam P on 29 Nov 2018 22:27

סך כל הזכרון בו הפונקציה משתמשת (מלבד רשימת הפלט, כאמור בתרגיל) צריך להיות מסדר O(k)zz.
כל משתנה מכל סוג (מחרוזת, אוסף, רשימה וכיו"ב) נכלל בספירה זו.

יצירת מילון: Re: יצירת מילון

By Noam P on 29 Nov 2018 22:23

כל פעולה שהקוד מבצע צריכה להכלל בחישוב סיבוכיות הזמן.

אם זאת, בניתוח אסימפטוטי, אם הקוד שכתבנו מבצע, למשל, O(n)zz פעולות, יצירה של מילון בגודל קבוע תהיה זניחה מאחר ומדובר בסיבוכיות זמן של O(1)zz.

סעיף ה: סעיף ה

By fani on 29 Nov 2018 22:03

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

סיבוכיות בסעיף ב:

By tamar on 29 Nov 2018 20:35

הבנתי, תודה!

שליפת ערך ממילון: Re: שליפת ערך ממילון

By Noam P on 29 Nov 2018 15:10

הכוונה היא גם לבדיקה האם מפתח כלשהו קיים במילון וגם לגישה לערך השמור במפתח זה (אם קיים).

שליפת ערך ממילון: שליפת ערך ממילון

By fani on 29 Nov 2018 14:40

[[div style="direction:rtl;"]]
האם הכוונה בשליפת ערך ממילון הוא חיפוש אם ערך כלשהו קיים?

סעיף א: Re: סעיף א

By Ben Bogin on 29 Nov 2018 11:41

כן

שאלה 4 סעיף א: Re: שאלה 4 סעיף א

By Ben Bogin on 29 Nov 2018 11:24

בשאלה זו הכוונה היא ל-mergesort כפי שהוצג בהרצאה

שימוש בפונקציה merge: Re: שימוש בפונקציה merge

By Ben Bogin on 29 Nov 2018 11:21

לא הבנתי את שאלתך - בסעיף א' רשום במפורש שהפלט הינו רשימה של k/n רשימות קטנות ממויינות, ושיש להשתמש ב sort_selection

סעיף א: סעיף א

By fani on 29 Nov 2018 08:37

האם ניתן להתעלם מהזיכרון שמוקצה ללולאות ולטווח שלהן?

שאלה 4 סעיף א: שאלה 4 סעיף א

By jakov on 28 Nov 2018 20:07

קיים שוני (משמעותי לסבוכיות הזכרון) בין המיזוג שראינו בהרצאה למיזוג שמובא בתרגיל הבית, כאשר אני מודד סיבוכיות אלגוריתם אני מסתמך על האלגוריתם כפי שהוא נראה בהרצאה בלבד?

תודה רבה

חישוב הסיבוכיות: Re: חישוב הסיבוכיות

By Ben Bogin on 28 Nov 2018 19:40

במידה וזה זהה למה שראינו בכיתה, אין צורך להראות את כל הפירוט ואפשר לעבור בצורה ישירה - אך יש לציין שהמעבר נבע מכך שזו סדרה חשבונית/הנדסית וכפי שראינו בכיתה

חישוב הסיבוכיות: חישוב הסיבוכיות

By Shay Azriel on 28 Nov 2018 18:48

אם הגעתי בחישוב הסיבוכיות לסדרה(חשבונית/הנדסית), כמובן עם הסבר לכך, האם אני צריך להראות את כל תהליך חישוב הסכום של הסדרה בנוסחה או שמספיק לרשום את הסיבוכיות שיצאה ישר אחרי ביטוי הסכום בסיגמה?

שימוש בפונקציה merge: שימוש בפונקציה merge

By ליטל on 28 Nov 2018 17:34

היי,
בהוראות של סעיף א' לא רשום שצריך להשתמש בפונקציה merge
וגם אין דרישה שהרשימה של תתי הרשימות תהיה ממויינת
מצד שני הקוד של הפונקציה מצורף

האם הרשימה המוחזרת צריכה להיות ממויינת?

תודה

סעיף א:

By shay on 28 Nov 2018 15:17

אכן:)

סעיף א:

By Ben Bogin on 28 Nov 2018 08:36

אני מציע לנסות לפתור את שני הסעיפים ולראות מה קורה :)

Run time complexity of dictionary operations: Re: Run time complexity of dictionary operations

By Ben Bogin on 28 Nov 2018 07:11

1. The run time of adding an item to a dictionary can also be considered in this exercise as O(1)
2. There is no difference - in both cases consider it as O(1)

(These assumptions are not too far from the truth and will be shown soon in the course)

סעיף א:

By shay on 27 Nov 2018 21:42

אבל עצם ההפרכה של אחת מהן מוכיחה את השניה..לא? הרי כדי להוכיח משהו ניתן להפריך את הטענה ההפוכה לו..

Run time complexity of dictionary operations: Run time complexity of dictionary operations

By dcs on 27 Nov 2018 21:21

Hi, I have two run time complexity related questions about dictionary operations:

1) What is the run time complexity of adding an element to a dictionary? Can we assume that this operation takes O(1)?

2) It's written in the exercise that we can consider extracting element from dictionary takes O(1). Are we talking about extracting elements that we know that exists in dictionary? Can I consider that dict.get(key) takes O(1)? This function returns None if the element does not exist. Or the only assumption is that dictionary[key] takes O(1)? Is there a difference between the two extractions?

Thank you.

שימוש בהגדרה עם גבול: שימוש בהגדרה עם גבול

By Tomer Porian on 27 Nov 2018 15:31

האם בסעיף א', כאשר רשום להוכיח/להפריך לפי הגדרה, ניתן להשתמש בהגדרה באמצעות מושג הגבול?

2ג: 2ג

By שאלה on 27 Nov 2018 11:32

מניחים פה
שk
הוא חזקה של 2?
אחרת הסיבוכיות היא של לוג של מספר שהוא החזקה הקטנה ביותר של 2 שהערך של
f
בה הוא אפס

סעיף א:

By Ben Bogin on 26 Nov 2018 22:06

אין טעות דפוס - אילו שתי טענות שיש להוכיח או להפריך כל אחת מהן בנפרד

הנחה לגבי n: Re: הנחה לגבי n

By Ben Bogin on 26 Nov 2018 22:05

כן

הנחות טריוויאליות: Re: הנחות טריוויאליות

By Noam P on 26 Nov 2018 17:28

אין צורך להוכיח מעברים טריוויאלים, אבל כדאי מאוד (מאוד) להזהר שכמחליטים האם מעבר מסוים הוא טריוויאלי או לא.

סיבוכיות של סדרה חשבונית: Re: סיבוכיות של סדרה חשבונית

By Noam P on 26 Nov 2018 17:27

חובה לנמק כל טענה בפתרון. כמובן שאם סוכמים סדרת איברים ומראים שהיא סדרה חשבונית ניתן להסתמך על הנוסחא לחישוב סכום סדרה חשבונית.

שאלה 4 סעיף ג: Re: שאלה 4 סעיף ג

By Noam P on 26 Nov 2018 17:23

לא

הנחות טריוויאליות: הנחות טריוויאליות

By Hidai on 26 Nov 2018 17:16

במהלך ההוכחות, צריך להוכיח באופן פורמלי מעברים טריוויאלים כמו n=O(n^2)?

שאלה 4 סעיף ג: שאלה 4 סעיף ג

By eden on 26 Nov 2018 15:42

האם אני יכול להניח שהרשימה ממוינת?

סיבוכיות של סדרה חשבונית: סיבוכיות של סדרה חשבונית

By tamar on 26 Nov 2018 14:06

מותר להשתמש בתרגיל בזה שכמות פעולות שזהה לסכום סדרה חשבונית הוא O של n בריבוע או שצריך להוכיח את זה?
תודה (אני שואלת לגבי סעיף ב')

הנחה לגבי n: הנחה לגבי n

By עומר on 26 Nov 2018 08:48

ניתן להניח בסעיף א' ש"אן" הוא חיובי וטבעי?

שאלה 4 סעיף ג: Re: שאלה 4 סעיף ג

By Noam P on 26 Nov 2018 07:46

כמה זמן לוקח לבדוק האם איבר נמצא ברשימה?

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

שאלה 4 סעיף ג: שאלה 4 סעיף ג

By Neta Ilan on 25 Nov 2018 15:01

האם אפשר להניח שהבדיקה האם איבר נמצא ברשימה היא O1?
כלומר הפעולה:
"if num in lst.."
היא מסיבוכיות זמן של O1?
אני יודעת שנתון שזמן שליפה ממילון היא ככה, אבל לא ברור לי איך מתקשר לבעיה פה מילון..

תודה :-)

סעיף א:

By jakov on 24 Nov 2018 17:00

סעיף א6.א ו-א6.ב מנוגדים אחד לשני, האם יש טעות דפוס או שכך תוכנן מלכתחילה ? תודה

סעיף ג שאלה 2: סעיף ג שאלה 2

By ofek on 24 Nov 2018 13:31

למישהו יש רעיון לכיוון בסעיף הזה? אין לי אפילו התחלה של רעיון מאיפה לבחור את ab שאיתם אפשר לקרוא לפעולה מהסעיף הקודם…

סעיף ב: Re: סעיף ב

By Noam P on 23 Nov 2018 23:19

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

סעיף א: Re: סעיף א

By Noam P on 23 Nov 2018 23:16

צריך להוכיח

סעיף א: סעיף א

By fani on 23 Nov 2018 21:29

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

איברים שונים ברשימה: Re: איברים שונים ברשימה

By Ben Bogin on 22 Nov 2018 12:46

הכוונה היא לאיברים עם מקומות שונים ברשימה -
עבור הדוגמה שלך יוחזר True

שימוש ברשימה בסעיף א: Re: שימוש ברשימה בסעיף א

By Ben Bogin on 22 Nov 2018 12:45

זה אכן מימוש שגוי - הפונקציה לא אמורה לשנות את הרשימה המקורית

סעיף ז': Re: סעיף ז'

By Ben Bogin on 22 Nov 2018 12:41

כן, צריך לספור את כל הסכימות.

סעיף ג: Re: סעיף ג

By Ben Bogin on 22 Nov 2018 12:40

צריך להתחשב בכל המספרים הזוגיים הגדולים מ-2 ועד limit

איברים שונים ברשימה: איברים שונים ברשימה

By עדי on 22 Nov 2018 10:57

האם בדרישה שקיימים שני איברים שונים ברשימה שסכומם s, הכוונה לשני איברים עם ערכים שונים (by value), או איברים במקומות שונים ברשימה (by index)?
כלומר, עבור הרשימה [1,2,2] וs=4, האם מוחזר True או False?

שימוש ברשימה בסעיף א: שימוש ברשימה בסעיף א

By נעה on 22 Nov 2018 08:51

בסעיף א' הפונקציה שכתבתי משנה את הרשימה שניתנה לפונקציה, כך שבהרצה חוזרת עם פרמטר אחר אך רשימה זהה, הרשימה ריקה.
האם זה מימוש שגוי? (הטסטר בודק הרצת הפונקציה עם מספר פרמטרים שונים אך אותה הרשימה, כך שבמקרה של המימוש הנ"ל הוא מחזיר שגיאה).

תודה!

סעיף ז': סעיף ז'

By Eran on 20 Nov 2018 22:34

האם צריך לספור את ה-carried number עבור הטור האחרון?
נניח עבור התרגיל 1+1
האם צריך לספור את ה-carried flag עבור הטור השני כפעולת חיבור?

סעיף ג: סעיף ג

By Shay Azriel on 20 Nov 2018 21:21

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

תקינות דוגמת ההרצות סעיף ה:

By Michal-kleinbort on 19 Nov 2018 17:07

בידקו איך נראית הסדרה שמתחיל המספר 55, ומהו המספר העוצר של סדרה זו.
המספר העוצר הינו המספר הראשון שחוזר על עצמו בסדרה.

תקינות דוגמת ההרצות סעיף ה:

By אריק on 19 Nov 2018 11:28

גם לי יש את אותה בעייה בדיוק.

מספר השוואות מינימלי סעיף ב:

By Michal-kleinbort on 19 Nov 2018 10:54

שים לב שבסעיף ג' כתוב לתת ביטוי כתלות ב n וב-k.
מכאן משתמע שמבחינתנו k אינו קבוע.

פונקציית עזר:

By Michal-kleinbort on 19 Nov 2018 10:51

אין צורך למחוק את test

פונקציית עזר: Re: פונקציית עזר

By Michal-kleinbort on 19 Nov 2018 10:51

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

מספרים טבעיים בקורס: Re: מספרים טבעיים בקורס

By Michal-kleinbort on 19 Nov 2018 10:48

כאשר נדבר על טבעיים בקורס לרוב נכלול גם את 0.

בשאלה זו הכוונה היא למספרים שלמים חיוביים גדולים מ- 0 (זה אכן לא הוגדר בסעיף בצורה ברורה)

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

מספר השוואות מינימלי סעיף ב:

By עומר on 19 Nov 2018 10:43

אני פירשתי את זה ככה כי רשום k-1 השוואות
אם עושים בדיקה כזו, כמו החיפוש בינארי אז יש 2 השוואות כלומר k
אבל מהחידוד שלך זה ברור, תודה!

בקשר לסעיף ג', יש כלל לפיו מחליטים מתי k נחשב קבוע? כי בכל זאת אני לא מצליח להבין אם עדיף 2 פעולות כפול לוג 3 או פעולה אחת כפול לוג 2
כי הרי בלי הקבוע הזה עדיף חזקה גדולה יותר, כדי לקבל לוג קטן יותר.

פונקציית עזר:

By Yuval on 19 Nov 2018 10:04

בנוסף, צריך למחוק את הפונקציה test מהקובץ לפני ההגשה?

פונקציית עזר: פונקציית עזר

By Yuval on 19 Nov 2018 10:01

האם ניתן לבנות פונקציית עזר אשר מחשבת את המספר הבא? וכמובן לצרף את הפונקציה לקובץ פייתון.

5d: Re: 5d

By Michal-kleinbort on 19 Nov 2018 09:39

Hi,
The question is not very clear.
What do you keep in your dictionary? what are the keys and values?

מספר השוואות מינימלי סעיף ב:

By Michal-kleinbort on 19 Nov 2018 09:30

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

בסעיף ג' עליכם לתאר ביטוי שתלוי ב k,n.
כלומר שניהם אינם קבועים מבחינתכם.

תקינות דוגמת ההרצות סעיף ה:

By גילי on 19 Nov 2018 08:29

את יכולה להסביר שוב בבקשה?

מספר האיטרציות: Re: מספר האיטרציות

By Noam P on 19 Nov 2018 07:06

נסתכל על הקוד הבא:

 for i in range(x): for j in range(y): print("1") 

מאחר וכל איטרציה מדפיסה בדיוק פעם אחת, ספירה של מספר ההדפסות שקולה לספירת מספר האיטרציות.
כמה הדפסות מתבצעות בדיוק?

סעיף א:

By Yuval Malka on 19 Nov 2018 06:32

אני חושבת שמתכוונים להרצה על מילון שמייצג חלק מפונק' לא חח"ע. למשל אם הפונק' היא y=x**2 אז תיצור מילון כזה:


{2:4 , -2:4 , 3:9 , -3:9 , 4:16 , -4:16}

זה מילון מספיק רחב כדי להבין מה קורה כשמריצים.

מספר האיטרציות: מספר האיטרציות

By Yuval on 19 Nov 2018 06:25

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

 for i in range (x): for n in range (y): ... 

נגדיר את מספר האיטרציות כ-xy (מס' הכניסות ללולאה הפנימית) או xy + x (סכום האיטרציות של הפנימית והחיצונית)?

תודה רבה!

מספרים טבעיים בקורס: מספרים טבעיים בקורס

By יובל לוין on 18 Nov 2018 19:24

האם הם כוללים את 0? והאם ב6א צריך להתייחס איכשהו למקרה בו האיבר הראשון בסדרה הינו 0?

סעיף א: סעיף א

By Nimrod on 18 Nov 2018 16:07

לא הבנתי למה הכוונה להריץ פונקציה כלשהי שאינה חד-חד ערכית.. אפשר לקבל דוגמה?

מספר השוואות מינימלי סעיף ב:

By עומר on 18 Nov 2018 13:28

1. ללא קבועים כפליים נקבל מקסימום שווה למינימום אם אין יציאה מהירה (מוסבר בלינק המצורף) כמו באלגוריתם שמתואר בסעיף ג'.
אם יש יציאה מהירה נקבל שהמספר המינימלי יכול להיות השוואה אחת, אם המספר שמחפשים נמצא בדיוק בשליש של המערך.
2. בסעיף ג' נקבל כי האלגוריתם הכי טוב יהיה עבור k=n, ולכן האם במקרה כזה עדיין נתייחס לk כקבוע כפלי?

5d: 5d

By dcs on 18 Nov 2018 10:11

Hi,

If the number's prime sum is composed of both one prime number and two prime numbers, am I supposed to increment both values of the keys in the dictionary? For example 14 = 11 + 3 and also 14 = 7 + 7.

Thanks

סעיף א - הרצה על המס' 40:

By Michal-kleinbort on 18 Nov 2018 08:03

שימו לב שבסעיף א' לא מדברים על מספרים עוצרים אלא על האם הסדרה תגיע למספר 1 או למספר 89.

מספר השוואות מינימלי סעיף ב: Re: מספר השוואות מינימלי סעיף ב

By Michal-kleinbort on 18 Nov 2018 07:59

אני לא בטוחה שהבנתי את שאלתך.
בסעיף ב' צריך לתת ביטוי למספר השוואות מינימלי ומקסימלי.
בסוף הסעיף כתוב שניתן להתעלם מקבועים כפליים (אז 2 השוואות או השוואה אחת הן "אותו דבר" מבחינתנו כאשר מתעלמים מקבועים כפליים)

סעיף א - הרצה על המס' 40:

By good boy on 17 Nov 2018 17:16

מספר המתכנס ל-1 נקרא מחספר שמח
https://en.wikipedia.org/wiki/Happy_number
אין חשיבות אם מדובר במספר עצוב
אשר מתכנס לסדרה הבאה:
4, 16, 37, 58, 89, 145, 42, 20
ההגעה למספר העוצר בסדרה תלויה במספר ההתחלתי
בשאלה, המושג מופשט ו-89 ניתן בתור דוגמא מתוך הסדרה, ואין רלונטיות לפתרון כך שאפשר להתייחס ל89 כמספר עצירה לכל הסדרה

מספר השוואות מינימלי סעיף ב: מספר השוואות מינימלי סעיף ב

By עומר on 17 Nov 2018 11:13

במימוש הרגיל של חיפוש בינארי, בודקים את הערך הנוכחי של האמצע ולכן עושים בכל איטרציה 2 השוואות.
לפי הנוסח של סעיף ג', בשאלה מתארים אלגוריתם שלא עושה יציאה מהירה שכזו.
אז גם בסעיף ב' המקרה המינימלי שאנחנו צריכים להניח הוא לא 1? אבל במקרה כזה נקבל מקרה מינימלי ומקסימלי זהים עד כדי קבועים כפליים

https://stackoverflow.com/questions/3500167/is-it-possible-to-have-only-one-comparison-per-iteration-of-a-binary-search-algo

סעיף א - הרצה על המס' 40: סעיף א - הרצה על המס' 40

By Yuval on 17 Nov 2018 10:34

כשמריצים את האלגוריתם על המספר 40 למשל, המספר העוצר יהיה 16. איך זה מתיישב עם הטענה שהוצגה?

הסדרה תיראה כך:


40 - 16 - 37 - 58 - 89 - 145 - 42 - 20 - 4 - 16

תודה!

סעיף א - הקובץ המועבר:

By Michal-kleinbort on 17 Nov 2018 08:37

ניתן למחוק אותה ידנית.
או שניתן להשאיר את הקובץ כפי שהוא ולהוסיף שורה בקוד שאומרת שאם הגענו למחרוזת "end" נתעלם ממנה.

סעיף ג: Re: סעיף ג

By Michal-kleinbort on 17 Nov 2018 08:34

Yes

מספר איטרציות סעיף ה: Re: מספר איטרציות סעיף ה

By Michal-kleinbort on 17 Nov 2018 08:31

עליכם לספור רק את מספר האיטרציות בלולאה

מספר איטרציות סעיף ה: מספר איטרציות סעיף ה

By eliran on 16 Nov 2018 19:05

האם מספיק לספור את מספר הפעמים שהלולאה מתבצעת בכל אחד מהמימושים או שיש עוד דברים שצריך לספור?

סעיף א - הקובץ המועבר:

By Ro'ee on 16 Nov 2018 16:26

רק מוודא -
למחוק את המחרוזת מהקובץ ע״י הקוד שאני רושם?
או פשוט בעצמי (ואז הקוד לא צריך להכיר בזה שזה קיים)

סעיף ג: Re: סעיף ג

By Ben Bogin on 16 Nov 2018 12:20

האפשרות השנייה - אנחנו רוצים לבדוק אם ההשערה נכונה, כלומר האם היא מתקיימת עבור כל הערכים בתחום

פעולות השוואה: Re: פעולות השוואה

By Noam P on 15 Nov 2018 23:39

שלושת הפעולות שציינת הן פעולות השוואה ולכן יש לספור את כולן.

קבועים כפליים: Re: קבועים כפליים

By Noam P on 15 Nov 2018 23:37

כמו שראינו בתרגול, אנחנו מתעניינים בחסמים אסימפטוטים ולכן קבועים כפליים פחות מעניינים אותנו.
קונקרטית, אם למשל את מבצעת 15n פעולות השוואה ניתן לומר שאת מבצעת O(n)zz פעולות (ולהזניח את הקבוע הכפלי 15).

פעולות חיבור: Re: פעולות חיבור

By Noam P on 15 Nov 2018 23:34

פעולת חיבור בין שני ביטים היא חיבור של ביט אחד עם ביט אחד

סעיף ד, הבהרת הגדרת הערך של כל מפתח: Re: סעיף ד, הבהרת הגדרת הערך של כל מפתח

By JMDG on 15 Nov 2018 21:34

never mind, took cake of it with one extra character my code

סעיף ד, הבהרת הגדרת הערך של כל מפתח: Re: סעיף ד, הבהרת הגדרת הערך של כל מפתח

By JMDG on 15 Nov 2018 21:29

Is it OK if the function:
check_goldbach_for_num_stats(n, primes_set)
returns a type float?

סעיף ג: סעיף ג

By fani on 15 Nov 2018 21:15

[div style="direction:rtl;"]]
האם ניתן להשתמש ולקרוא לפונקציה שנכתבה בסעיף ב?
[[/div]]

קבועים כפליים: קבועים כפליים

By fani on 15 Nov 2018 20:09

למה מתכוונים כשאומרים שניתן להתעלם מהקבועים הכפליים?

פעולות השוואה: פעולות השוואה

By fani on 15 Nov 2018 19:04

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

פעולות חיבור: פעולות חיבור

By fani on 15 Nov 2018 18:11

חיבור של שני ביטים הכוונה בחיבור של ביט אחד עם ביט אחד? כלומר אם עושים 10+1 האם זו נחשבת פעולת חיבור אחת או שתי פעולות?

סעיף ג: סעיף ג

By הדי on 15 Nov 2018 16:53

הכוונה בסעיף היא שהפונקציה תחזיר ערך אמת או שקר עבור כל אחד מהמספרים שהיא בודקת?
או שתחזיר ערך אמת אם כל הערכים הנבדקים מקיימים את ההשערה וערך שקר אחרת?

תודה מראש

שאלה 1 סעיף ד':

By אוהד אבנרי on 13 Nov 2018 12:50

זה באמת היה על 2.7, תודה!

סעיף ה' - מיון מילון:

By Michal-kleinbort on 13 Nov 2018 11:09

This may help: http://tau-cs1001-py.wikidot.com/forum/t-8507854/

סעיף א: Re: סעיף א

By Michal-kleinbort on 13 Nov 2018 11:07

Try to :
1. Check what is the output of the function that converts an int to a binary representation
2. Use the precise formula that we mentioned in the recitation

סעיף ז: Re: סעיף ז

By Michal-kleinbort on 13 Nov 2018 11:01

לא צריך לספור את פעולת ההעתקה עצמה, אבל כתוצאה מההעתקה של ה carry נוצרה פעולת חיבור נוספת שאותה עליכם לספור.

שאלה 1 סעיף ד': Re: שאלה 1 סעיף ד'

By Michal-kleinbort on 13 Nov 2018 10:53

אצלי מתקבלות תוצאות כמו במחשב שלך, גם עם python tutor.
שים לב שב python tutor אכן בחרת לעבוד עם Python 3.6 ולא עם Python 2.7

טעות בשאלה 1 סעיף ו: Re: טעות בשאלה 1 סעיף ו

By Michal-kleinbort on 13 Nov 2018 10:50

תודה נטע.
אין בעיה להשתמש בשאלה זו ב time.clock() אם כך מתקבלות תוצאות שאינן 0.0

סעיף ה' - מיון מילון:

By Itai Weiss on 13 Nov 2018 07:56

מצטער טעיתי, יש צמד אחד שלא מופיע במילון שלי:
55: 1
במקומו מופיע:
250: 1
מנסה לדבג ולמצוא את הבעיה, כי כל שאר המילון זהה (גם המילון בבדיקה עם 44 ו-3)

סעיף ה' - מיון מילון: סעיף ה' - מיון מילון

By Itai Weiss on 13 Nov 2018 07:46

בסעיף ה' של שאלה 6, לאחר מימוש הפונקציה והרצת בדיקות, קיבלתי את אותו מילון כמו בתוצאה הרצויה
(כמו test)
אבל סדר המפתחות היה שונה. במילון שפרסמתם המפתחות ממוינים בסדר עולה, ואצלי הם לא ממוינים, אך עדיין מדובר באותו מילון ועדיין יש לי
error

אני יודע שלא ניתן למיין מילון מהסוג שלמדנו, מה ניתן לעשות?
תודה

שאלה 1 סעיף ד': שאלה 1 סעיף ד'

By אוהד אבנרי on 12 Nov 2018 10:39

כשאני מריץ את הקוד הבא על המחשב (פייתון 3.6.7):

 def reverse_dict(d): for k in d: d[d[k]] = k d.pop(k) d={1:'a',2:'b'} reverse_dict(d) print(d) 

אני מקבל את הפלט:
{1:'a',2:'b'}
אך כשאני מריץ אותו באתר של python tutor, הפלט הוא:
{'a': 1, 2: 'b'}

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

סעיף א: Re: סעיף א

By JMDG on 12 Nov 2018 06:19

how come when I ask python for the length of the string representing the binary number of 15**2018
I get a different answer then when I ask for the logarithm of the number in base 2?
(and the difference is more then one, otherwise I would say that the difference is doe to the fact that the length is actually the round up of the log)

תקינות דוגמת ההרצות סעיף ה:

By tamar on 11 Nov 2018 20:25

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

סעיף ז: סעיף ז

By ofek on 11 Nov 2018 18:36

כאשר סופרים את פעולות החיבור כתוב לא לספור העתקה של ביטים, האם זה אומר שלא צריך לספור את האחד שזוכרים מ 1+1 וממשיך לחיבור הבא כך שמחברים 3 ביטים (האחד שזוכרים ועוד שני הביטים של המספרים במיקום הזה)?

טעות בשאלה 1 סעיף ו: טעות בשאלה 1 סעיף ו

By Neta Ilan on 11 Nov 2018 16:29

שלום לכולם :-)

בקובץ ה-py, אחרי סעיף 1 c, מופיע הסקריפט לסעיף e 1, אבל חסרה שם השורה: "import time"
זה לא קריטי למי שהעתיק מהפי די אף את הפונקציות ואז הפעיל.

בנוסף, אני לא הצלחתי להגיע לזמנים באמצעות ההוראה time.time(), פונקציה 2 מחזירה כמעט תמיד 0.0, וזמן הריצה של פונקציה 1 גדל כל כך מהר שכדי להגיע לזמן שהוא לא 0.0 בפונקציה 2 המחשב נתקע בגלל פונקציה 1.
אני השתמשתי בפונקציה time.clock() שלא מעגלת את זמן הריצה, וזה עבד מצוין.

סעיף ז': Re: סעיף ז'

By Noam P on 10 Nov 2018 22:37

כן

משהו לא ברור בסעיף ה: Re: משהו לא ברור בסעיף ה

By Noam P on 10 Nov 2018 22:35

  1. נא לתת כותרת אינדיקטיבית לשאלה ולא "משהו לא ברור".
  2. נא ליישר טקסט בעברית לימין על פי ההוראות שמופיעות בצד ימין בפורום
  3. במקרה הנוכחי יש שני מימושים שונים לאותה המטרה ולכן רצוי (וניתן) להעזר בהם אם ההסבר המילולי לא ברור
  4. המטרה במקרה שלנו - ליצור מילון בו הערך ב-keys[i]zz הוא המפתח לערך ב-vals[i]zz

סעיף ז': סעיף ז'

By noa davidovitch on 10 Nov 2018 18:37

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

סעיף א:

By noa davidovitch on 10 Nov 2018 18:34

אפשר לצרף צילום מסך של הקוד לקובץ שלך

משהו לא ברור בסעיף ה: משהו לא ברור בסעיף ה

By shaul on 10 Nov 2018 15:37

בסעיף ה כתוב:
"מילון בו המפתח של הערך במקום ה- i ברשימה keys הוא המפתח במקום ה- i ברשימה vals"

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

תקינות דוגמת ההרצות סעיף ה: Re: תקינות דוגמת ההרצות סעיף ה

By Michal-kleinbort on 10 Nov 2018 06:40

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

סעיף ד, הבהרת הגדרת הערך של כל מפתח: Re: סעיף ד, הבהרת הגדרת הערך של כל מפתח

By Michal-kleinbort on 10 Nov 2018 06:30

בקובץ מופיעה הדוגמא הבאה

 >>>check_goldbach_stats(11, primes_set) {1: 3, 2: 1} 

הכוונה היא שכאשר בודקים את המספרים הזוגיים הגדולים ממש מ-2 וקטנים ממש מ 11 (שהם 4,6,8,10) ,
את המספרים 4,6,8 ניתן לקבל (כל אחד) כסכום של זוג ראשוניים אחד
ואת המספר 10 ניתן לקבל ע"י שני סכומים אפשריים.

סעיף א - הקובץ המועבר:

By Michal-kleinbort on 10 Nov 2018 06:18

בקוד שלכם תוכלו לדאוג להתעלם ממחרוזת זו. ניתן גם למחוק את המחרוזת מהקובץ.

סעיף ג: Re: סעיף ג

By Michal-kleinbort on 10 Nov 2018 06:10

תוכלו לוותר על חלק מהשורות אם הן מיותרות עבורכם, או להשלים אותן באופן ריק.
בכל מקרה, אסור להוסיף שורות חדשות!

סעיף ה:

By Michal-kleinbort on 10 Nov 2018 06:07

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

סעיף א: סעיף א

By ofek on 09 Nov 2018 22:03

עברתי על התרגול ואין שם אלגוריתם להפיכה לבינארי… בכיתה אכן ראינו שאפשר להפוך לייצוג בינארי באמצעות modulu 2 ואז חילוק ב2 עד שמגיעים למספר, אבל זה האלגוריתם שצריך לממש על מנת להפוך את המספר לstring ולמצוא את אורכו…
בנוסף, איך אפשר להדביק את האלגוריתם שהופך לstring בשורה אחת בPDF? יש בו לולאות וכו…האם השורה שיש להדביק במסמך היא פשוט קריאה לפונקציה הזו? ואם כן, אז לא צריך לצרף את הקוד של הפונקציה עצמו?
תודה תודה לעונים!

סעיף ג: סעיף ג

By ofek on 09 Nov 2018 20:13

האם חובה להשלים את כל השורות הריקות או שבסדר להתעלם מפעולות על a ועל result אם הם מיותרות?

הבעת מספר האיטרציות: Re: הבעת מספר האיטרציות

By Noam P on 09 Nov 2018 20:01

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

הבעת מספר האיטרציות: הבעת מספר האיטרציות

By ofek on 09 Nov 2018 17:52

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

סעיף ד, הבהרת הגדרת הערך של כל מפתח: סעיף ד, הבהרת הגדרת הערך של כל מפתח

By מיכל on 09 Nov 2018 12:25

כמות המספרים הזוגיים שיכולים להיות מורכבים ממספר זוגות״
זה.״
האם ניתן לבחור את אותו הזוג פעמיים, או שאנחנו מתבקשים שלא לספור את האפשרות הזו?

סעיף ה: Re: סעיף ה

By Noam P on 09 Nov 2018 09:41

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

סעיף ה: סעיף ה

By fani on 09 Nov 2018 07:34

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

תקינות דוגמת ההרצות סעיף ה: תקינות דוגמת ההרצות סעיף ה

By noa davidovitch on 08 Nov 2018 17:40

בסעיף ה בדוגמת ההרצה
count_ends(79, 3)
{1: 2, 55: 1, 133: 9, 153: 26, 217: 3, 370: 10, 371: 23, 407: 3,
1459: 1}
אני מקבלת את התוצאה זהה למעט האיבר 55:1 שאני מקבלת אותו 250:1
יכול להיות שיש טעות בדוגמת ההרצה?
או שאני צריכה לעשות בדיקה יותר מקיפה להבין למה דווקא ה250 מופיע לי וכל השאר תקין

סעיף ה:

By Noam Atar on 08 Nov 2018 14:49

בסעיף ה בקוד של אמיר, האם לספור את הפקודות
keys.index(key), vals.index(val)
כאילו הם מבצעים איטרציות? כי בפועל הפעולות האלה גם עוברות על המערך

סעיף א - הקובץ המועבר:

By Ro'ee on 08 Nov 2018 13:54

בקובץ שמורידים מהאתר יש את המילה
end.
בסוף הקובץ.

האם אפשר למחוק אותה?
האם צריך שזה ירוץ יחד עם המילה הזו?

סעיף ה: Re: סעיף ה

By Michal-kleinbort on 08 Nov 2018 11:51

1. ההודעה לא קריאה. נא להקפיד ליישר לימין אם כותבים בעברית. הנחיות כיצד לעשות זאת מופיעות בצד ימין של כל עמוד באתר
2. הימנעו מלחשוף פתרונות בהודעות שאתם מפרסמים בפורום.

סעיף א - הקובץ המועבר: Re: סעיף א - הקובץ המועבר

By Michal-kleinbort on 08 Nov 2018 11:48

אין צורך לבודק את תקינות הקובץ.

סעיף א - הקובץ המועבר: סעיף א - הקובץ המועבר

By Adi on 07 Nov 2018 14:20

האם ניתן להניח שהקובץ שמועבר ל parse_primes הוא תמיד primes.txt?
(כלומר אין צורך לבדוק ראשוניות של מספרים ובדיקות קלט נוספות)

בעיה בביצוע בדיקה:

By גילי on 05 Nov 2018 17:30

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

בעיה בביצוע בדיקה: Re: בעיה בביצוע בדיקה

By Ben Bogin on 05 Nov 2018 06:11

חשוב לשים לב שבשביל שהטסטר יחזיר תשובה חיובית, יש להקפיד שהפונקציה שמממשים תחזיר ערך (עם return) ולא רק תדפיס (print).
אם המחרוזות אכן זהות בדיוק אבל הפונקציה לא מחזירה ערך, הטסטר ישווה בין המחרוזת הרצויה לאובייקט ריק ולכן יחזיר שקיימת חוסר התאמה

בעיה בביצוע בדיקה: Re: בעיה בביצוע בדיקה

By Noam P on 04 Nov 2018 21:50

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

בעיה בביצוע בדיקה: בעיה בביצוע בדיקה

By גילי on 04 Nov 2018 19:05

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

ירידת שורה בסוף הקובץ: Re: ירידת שורה בסוף הקובץ

By Yossi Tamarov on 29 Oct 2018 22:53

אין צורך לרדת שורה אחרי התוצאה האחרונה, אבל לא נפגע בציון שלכם במידה שמימשתם כך.

כתיבת תוכנית או שימוש בShell: Re: כתיבת תוכנית או שימוש בShell

By Yossi Tamarov on 29 Oct 2018 22:51

האפשרות השנייה היא המבוקשת, קרי את הפקודות ואת תוצאתן.

מה אם השורה האחרונה ריקה?: Re: מה אם השורה האחרונה ריקה?

By Noam P on 29 Oct 2018 15:19

אפשר להניח שהשורה האחרונה בקובץ איננה ריקה

מה אם השורה האחרונה ריקה?: מה אם השורה האחרונה ריקה?

By ערן on 29 Oct 2018 12:50

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

האם יש טסטר לשאלה 3:

By Noam P on 28 Oct 2018 06:47

No.

האם יש טסטר לשאלה 3:

By Lindsay on 27 Oct 2018 15:23

In q3, are we supposed to submit the code with a line that calls the function?

k בדיקת הטווח של:

By Noam P on 27 Oct 2018 12:28

Correct, the function should work for all natural start and end, and you can assume both start and end are natural (and given as integers).

k בדיקת הטווח של:

By jessica on 27 Oct 2018 11:37

int the instruction:
"the function must work for every natural n and every natural 1 <= k <= 9"
does n refer to the start and end?
if so, does this mean the function doesn't need to work if start or end are not natural?

האם יש טסטר לשאלה 3:

By omer on 27 Oct 2018 10:47

היי,
לגבי שאלה 3- לא משנה מה אני עושה התכנית אינה מזהה את הקובץ (הקובץ שמור באותה תיקייה תחת אותו שם בדיוק לפי ההנחיות)
מישהו נתקל גם? הצעות איך אפשר לוודא?

האם יש טסטר לשאלה 3: האם יש טסטר לשאלה 3

By Neta Ilan on 25 Oct 2018 18:17

לא ראיתי שיש טסטר לשאלה מספר 3
כתבתי את הקוד, אם מריצים את הפקודה ורושמים את השם של הקובץ (אוליבר טוויסט, לאחר שהוא שמור באותה תיקייה),
נוצר קובץ חדש בתיקייה שמתאים להוראות (המספרים נכונים)
אבל הקובץ לא נפתח אוטומטית אחרי הרצת הפקודה, אלא צריך לפתוח אותו מהתיקייה..
זה בסדר?

ירידת שורה בסוף הקובץ: ירידת שורה בסוף הקובץ

By Adi Dinerstein on 25 Oct 2018 10:15

בהנחיות התרגיל כתוב שעל כל תוצאה להופעי בשורה נפרדת.
האם יש לרדת שורה בסוף הקובץ (אחרי התוצאה האחרונה)?

How to save a created file to a given directory?: Re: How to save a created file to a given directory?

By Noam P on 23 Oct 2018 15:54

As stated in the HW pdf file, for this assignment you can assume that the location of the txt file is in the same folder as the py file you are running, so you can simply open the output file by open('output.txt','w') - the default location for open is in the local folder where the py file is located.

Generally speaking, one possible way to achieve what you want is by editing the path you are given to locate the folder where the input file is located. Think about how to implement that.

How to save a created file to a given directory?: How to save a created file to a given directory?

By Ronia H on 23 Oct 2018 06:57

If my program gets a certain file as an input, and then creates a new file, how can I save the new file into the directory of the input file?

טיפול בשורות ריקות:

By Noam P on 22 Oct 2018 09:05

כל פתרון שנותן את התשובה הנכונה (כפי שהגדרנו אותה) הוא קביל.

טיפול בשורות ריקות:

By Fani on 21 Oct 2018 20:31

הפעולה split() לא סופרת את תו ירידת השורה כמילה. לכן, האם אפשרי פשוט לעשות תנאי שאם השורה ריקה להדפיס 0.0?

טיפול בשורות ריקות:

By Noam P on 21 Oct 2018 19:33

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

k בדיקת הטווח של: Re: k בדיקת הטווח של

By Noam P on 21 Oct 2018 19:28

ניתן להניח כי k הוא שלם בין 1 ל-9

טיפול בשורות ריקות:

By Fani on 21 Oct 2018 18:56

האם תו ירידת השורה נספר כמילה אוטומטית? כי כאשר הדפסתי לדוגמא את מספר המילים בכל שורה אז בשורה הריקה זה נתן אפס.

k בדיקת הטווח של: k בדיקת הטווח של

By Adi on 21 Oct 2018 18:38

?בין 1 ל9 הכוונה היא שצריך לבדוק שהקלט אכן בטווח זה בתוך הפונקציהk כשכתוב שיש לשים לב ש
(?ומה ההנחיה אם הוא חורג מהטווח (כלומר יש להדפיס הודעת שגיאה או כלום או את המחרוזת כאילו כן היה בטווח

תודה

שימוש במשתנה: Re: שימוש במשתנה

By Noam P on 21 Oct 2018 06:23

ניתן ואף רצוי

הנחות לגבי הקלט: Re: הנחות לגבי הקלט

By Noam P on 21 Oct 2018 06:19

אפשר

טיפול בשורות ריקות:

By Noam P on 21 Oct 2018 06:16

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

הנחות לגבי הקלט: הנחות לגבי הקלט

By Muhammad on 20 Oct 2018 20:40

אפשר להניח ש- start קטן או שווה ל- end?

טיפול בשורות ריקות:

By Muhammad on 20 Oct 2018 19:27

התכוונתי אם נספור את *ירידת השורה* כמילה

טיפול בשורות ריקות:

By Muhammad on 20 Oct 2018 19:23

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

טיפול בשורות ריקות: Re: טיפול בשורות ריקות

By Noam P on 20 Oct 2018 18:28

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

כתיבת תוכנית או שימוש בShell: כתיבת תוכנית או שימוש בShell

By Inbal Cohen on 20 Oct 2018 15:21

האם הכוונה היא לצרף את הפקודות כפי שהן אמורות להופיע באיידל, או לצרף הרצה של הפקודות ב
shell
(ואת מה שהן מחזירות)
תודה,
ענבל

שימוש במשתנה: שימוש במשתנה

By Inbal Cohen on 20 Oct 2018 11:17

האם ניתן לקלוט את המחרוזת ואת הרשימה לתוך שני משתנים ולבצע את הפונקציות על המשתנים (במקום כל פעם להקליד את המחרוזת/הרשימה)

טיפול בשורות ריקות:

By David on 20 Oct 2018 10:22

למי שמשתמש בMac , ושעובד עם High Sierra בפרט שישים לב ששומרים את הקובץ oliver_twist.txt מתווספים תווים מוזרים נוספים שהם לא בקידוד UTF-8 הרגיל ואז יש בעיות עם הפונקציה open.
('f=open('oliver_twist.txt','r', encoding='utf-8 יעזור

מה הכוונה בסעיף ד?: Re: מה הכוונה בסעיף ד?

By Noam P on 20 Oct 2018 07:02

בתור התחלה, נסה להריץ את הקוד ולמדוד זמנים. זה לא יעבוד (למה? נסה להוסיף הדפסות בגוף הלולאה כדי להבין).
מאחר ושיטה זו לא עובדת, אנחנו נרצה למצוא דרך להעריך את זמן הריצה על ידי מדידות אחרות שאותן אנחנו כן יכולים להריץ.
איך אפשר לעשות את זה?

מה הכוונה בסעיף ד?: מה הכוונה בסעיף ד?

By שאול on 19 Oct 2018 18:31

איני יודע איך להעריך בצורה מושכלת את כמות הזמן שייקח למעבד שלי לבצע פעולות אלמנטריות (כגון לרשום/לקרוא מהרגיסטר לחבר וכו') מבלי לבצע ניסויים ספציפיים בהם אני מריץ בדיוק את הפעולות הללו ומודד את הזמן שלוקח לו לבצע אותן אך זה כבר יותר מדי קרוב לפשוט להריץ את התוכנה המדוברת (כיוון שהיא לא מאוד ארוכה) כך שנראה לי שאני לא מבין את השאלה.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License