שיחה:88-280 מבני נתונים ואלגוריתמים
הוספת שאלה חדשה
הוסף שאלה חדשה (רשום כותרת לשאלה, רשום את תוכן השאלה ולחץ על שמירה למטה מימין לסיום).
-עזרה על עיצוב הטקסט וכתיב מתמטי תוכלו למצוא כאן
אם אתם רוצים לשאול שאלה עליכם ליצור חשבון משתמש באתר.
שאלות
תרגיל 1
שאלה 4 סעיף 3, יש שיטה פרט לאינטרציות עבור שני גורמים בתוך רקורסיה? כי לא ברור לי איך להציג שלב סופי? עבור איזה k ומה הוא הסוף במקרה זה?
- זכור שאתה צריך רק לתת [math]\displaystyle{ \Theta }[/math] של התשובה. מספיק למצוא חסם תחתון וחסם עליון. --אוריה 15:54, 3 בנובמבר 2011 (IST)
בסעיף 2 תשובה לפי אינטרציות ולפי משפט master שונות מדי, האם יתכן דבר כזה?
- אם התשובות שקיבלת הן [math]\displaystyle{ \Theta }[/math] אחת של השנייה זה בסדר. אחרת כנראה יש לך טעות. --אוריה 15:54, 3 בנובמבר 2011 (IST)
שאלה 5
לא ברורה לי השאלה. אם כפל a ב-a
נחשב לפעולה, אז איך ניתן להפחית במספר פעולות.
בסופו של דבר אני עדיין אמור לכפול a בעצמו n פעמיים...
- רמז: מה אם n חזקה של 2? --אוריה 15:54, 3 בנובמבר 2011 (IST)
ומזה "סיבוכיות זיכרון" ?
- נגיע לזה בתרגול הקרוב. זו כמות התאים בזיכרון שהאלגוריתם צריך. --אוריה 15:54, 3 בנובמבר 2011 (IST)
שאלה 6 אסימפטותית?
- סיבוכיות זמן\זיכרון אסימפטוטית אומר [math]\displaystyle{ \Theta }[/math] של הזמן\זיכרון.
לגבי שאלה 5 לדעתי צריך לחשוב קיבוצית - נניח יש לך איקס בשמינית לחשב, ויש לך פונקציה של חזקה, אתה מכניס שלם חיובי, ומספר ומקבל חזרה את המספר בחזקה: x^8 = x^4*x^4 = x^2*x^2 * x^2*x^2 = ... כלומר כל פעם קוראים לפונקציית חזקה עם בלוק קטן יותר. לדעתי זה אמור להקטין. סלבה.
אבל מה עושים עם מה שנשאר? נגיד- x^116=x^64*x^50. מה עושים עם הx^50? אחרת, זה יוצא שרצים על הרבה..
- x^116=(x^58)^2
שאלה 6
יכול להיות שיש טעות באלגוריתם? ז"א במקום for i = 2 to n-1: צריך להיות for i = 0 to n-1:
- אין טעות. אם יתחילו את הלולאות מ-0 האלגוריתם יעשה פעולה אחרת. --אוריה 15:54, 3 בנובמבר 2011 (IST)
בשאלה 2 הכוונה לפונקציות אי שליליות?
- כן. הכוונה היא לפונקציות אי שליליות.--אוריה 20:32, 6 בנובמבר 2011 (IST)
שאלה 5
אם בתוך האלגוריתם אני משתמש בערך של log(n האם זה נחשב לפעולה אחת?
- לצורך התרגיל, כן.--אוריה 20:32, 6 בנובמבר 2011 (IST)
מצאתי דרך שתפתור את הרקורסיה מהסוג של 4ג ממש ביעילות ולהלן הקישור לאלגוריתם זה. סלבה.
שאלה 6: מה זאת אומרת אסימפטוטית?
תרגיל 2
- כמה שאלות לגבי חלק 1 -
1) האם מותר להוסיף תאים מסביב למטריצה (כך שהיא תהיה בגודל (m+1)*(n+1) ) ?
- כן. אבל אל תדפיס אותם בפלט. כתוב בתיעוד שאתה שם תאים מיותרים במטריצה אם אתה אכן עושה זאת. --אוריה 15:06, 18 בנובמבר 2011 (IST)
2) אם יש שני פתרונות (אם למשל בדרך לפתרון יש לולאה שאפשר לעבור מכל צד שלה) אז האלגוריתם צריך לפלוט 1- ? או שאני מניח שהקלט אמור להיות כזה שאין בו שני פתרונות?
- לא יהיה קלט עם שני פתרונות בחלק הראשון של התרגיל. --אוריה 15:06, 18 בנובמבר 2011 (IST)
3) בקשר לשני החלקים - אם אני עושה את התרגיל בC, אני צריך לעשות ADT של מחסנית (או תור) בקבצי קוד נפרדים, או לדחוס הכל בקובץ אחד?
- אתה יכול לשים הכל בקובץ אחד. --אוריה 15:06, 18 בנובמבר 2011 (IST)
- מה תאריך ההגשה של התרגיל? בקובץ עצמו כתוב 21.11.2011, בעוד שבעמוד התרגילים כתוב 27.11.2011. מה תופס?
- ה-27.11.2011. --אוריה 15:06, 18 בנובמבר 2011 (IST)
- איזה נתון מוזן קודם: השורות או העמודות? (כל הדוגמאות מראות מטריצה ריבועית)
- השורות קודם. --אוריה 15:06, 18 בנובמבר 2011 (IST)
- האם אפשר להניח שכל הקלטים בפורמט הנכון (רק 0,1 במטריצה, אכן מטריצה וכו'), וגם האם ניתן להניח שנקודות ההתחלה והסיום שתיהן בתוך המטריצה (שלא יתנו לי למשל נקודת התחלה (5,5) למטריצה 2X2)?
- אין צורך לבדוק את תקינות הקלט. אבדוק בכל אופן ואם צריך אז אציין זאת כאן. --אוריה 15:06, 18 בנובמבר 2011 (IST)
- האם ניתן להניח שהנקודת ההתחלה והסיום שנקבל הן נקודות שאפשר ללכת בהן? (שהן לא קיר).
- כדאי לבדוק. --אוריה 15:06, 18 בנובמבר 2011 (IST)
- האם ניתן לממש את המחסנית (ותור) בעזרת מערך ולא רשימה מקושרת? אם כן, ניתן להניח שגודלו (n*m) יהיה חסום במספר מאוד גדול? (לדוגמא, 1024)
- אפשר לממש במערך בכמה תנאים: 1. תתעד מה אתה עושה. 2. הכנסה והוצאה חייבות להיות ב-[math]\displaystyle{ O(1) }[/math] בממוצע. 3. גודל התור לא חסום ע"י מספר קבוע. אם התור או המטריצה הם בגודל קבוע מראש יורדו נקודות בבדיקה הידנית גם אם הבדיקה האוטומטית עברה בהצלחה. --אוריה 17:17, 27 בנובמבר 2011 (IST)
- האם ניבדק על שחרור כל הזכרון שהקצאנו דינמית במהלך התרגיל? (האם צריך לשחררו?)
- צריך לשחרר כל זיכרון שהוקצה. כנראה ירדו נקודות על זיכרון לא משוחרר, אבל לא הרבה, כי זה לא העיקר בקורס הזה. --אוריה 17:17, 27 בנובמבר 2011 (IST)
- האם מותר לממש את המחסנית כך שמהתוכנית הראשית יש לכאורה גישה לנתוני המחסנית (לא רק לאיבר העליון), אך שבתוכנית הראשית אני משתמש רק בפונקציות המיועדות למחסנית (PUSH ,POP, וכו')? (במקום שאממש את המחסנית באופן שמסתיר את נתוניו באופן מוחלט מהקוד הראשי)
- אין צורך "להסתיר" את תוכן המחסנית, אך אין לגשת אל המחסנית שלא בעזרת POP, PUSH וכיו"ב. (אני מבין שאתה מתכנת ב-c++ אם אתה שואל זאת.) --אוריה 17:17, 27 בנובמבר 2011 (IST)
האם תוכלו להעלות את כל קבצי הבדיקה האוטומטית הראשוניים (וגם לחלק ב')?
- הבקשה הזו היא לא לעניין. עליך להסתדר עם הדוגמא שיש בנוסח התרגיל. --אוריה 15:41, 15 בנובמבר 2011 (IST)
- כל הרעיון של קבצי הפידבק זה שנוכל לוודא שהתוכנית שלנו פועלת כמו שצריך על מקרים בסיסיים. ברגע שאין לנו את הקבצים, אין לנו דרך לדעת איפה הבעיה, והאם בכלל הבעיה אצלנו. אני אישית חיפשתי את הטעות שלי המון זמן ובסוף גיליתי שהייתה טעות בקבצים. דרך אגב, אני עדיין מקבל 10 ואין לי מושג איפה הטעות שלי (אם בכלל הטעות אצלי). בקורסים קודמים קיבלנו את קבצי הקלט/פלט וגם פירטו איך הפלט אמור להיראות, וכאן ההסבר הוא חלקי ביותר. אנחנו גם ככה לא נבחנים על הקלטים האלה.
תרגיל ראשון עובד על דוגמאות שפירסמת ועל כל דוגמא אחרות שיכלתי לחשוב עליהם. אך בכל זאת ציון בבדיקה אוטומתית הוא אפס... ולכן בעיה היא כנראה במספר רווחים, הורדות שורה וכו.. בבקשה תפרסמו קבצים של בדיקת פיתבק. והשאלות (תרגיל ב C++: 1) האם סינטקסיס using namespace std; יכול לא לעבוד בשרתים של בר אילן? אם כן מה הוא סינטקסיס הישן לספריה קלט פלט והקצאת זיכרון 2)האם מודפסים מילים input output? 3) האם יש שורה ריקה בין קלט לפלט? 4)האם יש רווחים פרט לרווחים בין איברי המטריצה? בסןף המטריצות?
חבל שנשרף כל כך הרבה שעות על ניסיונות לקבל יותר מאפס על תרגיל שעובד..
האם בקלט יש רווח בין אינדקס שורה לאינדקס עמודה? כלומר גודל מטריצה הוא 44 או 4רווח4?
- יש רווח (אחד) בין כל זוג מספרים בקלט. (אחרת, המספרים לא יוכלו להיות גדולים מ-9.) --אוריה 11:57, 24 בנובמבר 2011 (IST)
- בסעיף ב', הצלחתי לממש את האלגוריתם בלי שימוש במטריצת עזר ששומרת עבור כל אחד מהתאים את מספר התאים עד אליו. האם אני חייב לשנות את המימוש שלי (מכיון שכתוב בתרגיל שיש להשתמש במטריצה כזו)?
- זה בסדר בתנאי שממשת והשתמשת בתור. --אוריה 11:57, 24 בנובמבר 2011 (IST)
תרגיל 3
- בשאלה 1 (וגם למעשה 2) האם ניתן להניח שאנו מקבלים את העץ במימוש של מערך ואנחנו מקבלים את המערך? או שמקבלים פוינטר לשורש והוא ממומש בתור פוינטרים?
- אתם מקבלים מצביע לשורש (וכל צומת מכיל מצביעים לבנים). מימוש עץ במערך אפשרי רק במצבים של עץ מאוזן לחלוטין, כגון בערמה (ולא כגון המקרה שבתרגיל שם נתון עץ כללי). --אוריה 12:17, 6 בדצמבר 2011 (IST)
תרגיל 4
- "יש לתכנת רק ב-C." מה?!!! --זיתוני 19:14, 6 בדצמבר 2011 (IST)
- "התוכנית תרוץ עם שני פרמטרים" - כוונה ל- aruments to main function או לפשוט שני קלטים?--2m0rr0w2
- אחרי קריאה על פרמטרים ל-main ושוב התבוננות בדוגמאות הבנתי שמדובר עליהם. כל מי שכמוני לא זוכר איך זה עובד מוזמן לקרואה כאןHere
- וכרגיל מגיעים לשלב הכי "מעניין" כאשר הכל עובד כמו שצריך אך ציון עדיין נמוך ממאה. ): אם מצאתם איזה רווח שמעלה ציון או מקרה קיצון, שתפו אחרים. זה יעזור לכולנו לא לשרוף המון שעות סתם..
- לאור מקרים שנתקלתי בהם, אנא בדקו שהתוכנית שלכם אכן עובדת נכון על הקלטים לדוגמא -- בפרט, נסו לבדוק בתוכנית עצמה שהמערך שמיינתם באמת ממויין ולא "כמעט ממויין" (קשה לראות טעויות קטנות במיון בגלל גודלם של המערכים). גם טעות אחת במיון תגרור הורדה של כל הנקודות על הסעיף בבדיקה. --אוריה 13:25, 15 בדצמבר 2011 (IST)
- האם ניתן להניח הנחות כלשהן על המספרים שיהיו בקובץ, למשל שלמים? חיוביים? שונים מ-0? נכנסים ב-int? (על הדרך סידרתי קצת בלאגן שהיה פה בעמוד)
- רשום בתרגיל: "קובץ המכיל רשימת מספרים שלמים"
- המספרים בקובץ הם שלמים, אי שליליים (0 אפשרי) ונכנסים ב-int. --אוריה 22:15, 12 בדצמבר 2011 (IST)
- האם מותר להשתמש בstring וב-sstream כדי לבדוק מהו הפרמטר שמקבלים? (אם זה sort או מספר, ואם מספר אז איזה מספר?)
- באיחור קל, אפשר להשתמש בדברים שציינת, אבל יותר פשוט להתשתמש ב-strcmp (לדוגמא). כדי להמיר מחרוזת למספר יש את הפונקציה atoi. --אוריה 10:21, 20 בדצמבר 2011 (IST)
מספר קורס
המספר קורס של העמוד הזה הוא 88-820 במקום 88-280
תרגיל 6
- בקשה לתרגילים הבאים: תוכלו בבקשה לפרסם תרגילים רק כשמסתיים מועד ההגשה של התרגיל הקודם, כך שזמני העבודה שלנו על התרגילים לא יהיו חופפים כל הזמן? זה סתם מלחיץ ולא באמת מועיל במשהו...
- זו הנחיה של המרצה. אם אתם רוצים שלא תהייה חפיפה, זה אומר שהתרגילים יהיו לשבוע אחד.--אוריה 10:09, 25 בדצמבר 2011 (IST)
- בנסיון להגיש תרגיל targil6cpp.cpp, אני מקבל שגיאה מ-submitex:
- "שגיאת תחביר בקובץ תאריכי ההגשה, נא להודיע למתרגל"
- יש בעיה במערכת ה-submit כרגע. נסו להגיש מיום שני בהצהריים. עד אז ככה"נ הבעיה תטופל. --אוריה 10:09, 25 בדצמבר 2011 (IST)
- האם מותר להשתמש במחלקת string? ומה בדבר מימוש STL של רשימה מקושרת?
- אפשר להשתמש ב-string וב-math. אסור להשתמש ב-STL. --אוריה 14:14, 30 בדצמבר 2011 (IST)
- טעות קלה: הכוונה הייתה שאסור להשתמש בעצים של STL. וקטור, תור ומחסנית הם בסדר. --אוריה 21:58, 31 בדצמבר 2011 (IST)
- האם יתכן שנקבל מחרוזת ריקה לקידוד\פיענוח?
- האם צריך להדפיס שורה ריקה בסוף הפלט?
- האם נקבל מחורזת בגודל מטורף? (כזה שאי אפשר לקלוט מחרוזת באורכו לטיפוס string ב-c++)
בעיה חוזרת
כבר כמה פעמים כשאני בא להגיש כתוב לי: Software error:
Couldn't close targil6cpp.cpp: No space left on device at /var/www/submit/cgi-bin/welcome.cgi line 577. For help, please send mail to the webmaster (pinchas@macs.biu.ac.il), giving this error message and the time and date of the error. אני יודע שלעוד סטודנטים יש את הבעיה הזאת, מה אנחנו אמורים לעשות?
- נכון שסידרו את זה עכשיו, אבל לרבים מאיתנו לא הייתה דרך לדעת כמה אנחנו מקבלים עד היום בערב (כשחזרנו מהאוניברסיטה). האם בכל זאת לא נקבל דחייה?
תרגיל 7
- שאלה ראשונה סעיף 2, דרישה ב: זה לא אומר שבכל מחלקה ילמד לכל היותר סטודנט אחד? כי אם כן זה בעיה שקולה לסעיף 1...
- שאלה 1, סעיף 1: "וכל מחלקה מעוניינת לקבל סטודנט אחד לכל היותר." - כלומר, כל מחלקה מעוניינת לקבל מקסימום סטודנט אחד?
- (לא המתרגל. מהבנתי את התרגיל) סעיף 2, דרישה ב' לא אומרת שבכל מחלקה ילמד לכל היותר סטודנט אחד, אלא שכל סטודנט ילמד לכל היותר במחלקה אחת. שאלה 1, סעיף 1: ככל מחלקה מעוניינת לקבל מקסימום סטודנט אחד.
- בשאלה השנייה, מה הכוונה שהקשת "רוויה"? שהיא מלאה או מספיק שעובר בה משהו?
- (שוב, לא המתרגל. מהבנתי את התרגיל) (כנראה) שהיא מלאה.
ציוני תרגיל
- איך אפשר לדעת על מה ירדו נקודות בתרגיל 2?
- כנ"ל לגבי תרגיל 4. זה כ"כ נורא שאנחנו רוצים לדעת איפה ירדו לנו נקודות?
- לצערנו, הבודק לא תיעד את הטעויות בתרגילים 2 ו-4. הנחינו אותו לפעול אחרת בתרגיל 6. נקודות לרוב יורדות על אי שחרור זיכרון, מימוש שלא בהתאם להנחיות (אלגוריתם שונה מהנדרש; סיבוכיות זמן גדולה מהנדרש), הנחה על גודל הקלט (לדוגמא, הקצאת מערכים בגודל קבוע) ומימוש שאמנם עובד נכון על הדוגמאות של הבדיקה האוטומטית, אך לא עובד נכון על כל הקלטים.--אוריה 20:02, 11 בינואר 2012 (IST)