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

מנהלים: ta_gilad, mari

שלח תגובה
Golden
הודעות: 12
הצטרף: 01:18 11/11/2009

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

שליחה על ידי Golden » 01:42 11/11/2009

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

ציטוט של שאלות ותשובות (של צוות מבנה נתונים מתרגל ilankad) והסבר למה הם לא תואמים (לדעתי לפחות) את מה שיש בפועל בהתאם לפלט דוגמא שלכם:

לינקים מצורפים:
http://myforum.bgu.ac.il/phpBB3/viewtop ... 128&t=3916
http://myforum.bgu.ac.il/phpBB3/viewtop ... 128&t=3918

שאלה : "האם משימה 9 אמורה לקלוט את הניחושים (מהמשתמש)? או להשתמש באחת השיטות ע"מ לקבל את הניחושים?"
תשובה : "לא, עליה להשתמש בשיטות שמימשת לצורך בחירת הניחושים המתאימים. (ניחוש ראשון אקראי ושאר הניחושים מתיישבים)"

שאלה : "צריך לשלב את משימה 3 "randomizeSequence" בתוכנית הסופית? אם כן אז איפה?"
תשובה : "ברור, לצורך ניחוש התחלתי"

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

קוד: בחירת הכל

	/*/// +++++++++++++++++++++++++ test for printGame and play +++++++++++++++++++++++++

			int[]arr1 = {1,2,3,4};
			printGame(arr1, play(arr1));

				//expected output:  the secret is 1 2 3 4
				//			  		the guess 0 1 2 3  gives (h/f): 0 3
				//			  		the guess 1 0 3 4  gives (h/f): 3 0
				//			 		 the guess 1 0 3 5  gives (h/f): 2 0
				//			 		 the guess 1 2 3 4  gives (h/f): 4 0
				//			 		 you guessed the secret within 4  rounds
כי אז איך הייתם יכולים לצפות לאותה תוצאה בפלט?

בנוסף גם בדוגמא לפלט שהכנסתם בקובץ Mastermind.java וגם בדוגמאות פלט בדף העבודה כל הניחושים מתחילים ב - 3 2 1 0, מה שתואם שימוש ב-nextRightfulGuess ולא ב - randomizeSequence , גם שאר פלטי הניחושים תואמים לניחוש נכון הבא בשילוב של ניחוש מתיישב כמובן (אני מניח שהאפשרות של nextRightfulGuess יותר הגיונית מהאפשרות של randomizeSequence כיוון שאתם צריכים לעשות בדיקה אוטומטית אז הפלט צריך להיות קבוע לכל תוכנית בגלל זה גם הבעיה יותר מוזרה לי).

* אני מקווה שהבהרתי את הבעיה כמו שצריך.

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

תודה מראש.

TA_IlanK
הודעות: 84
הצטרף: 23:16 17/11/2008
יצירת קשר:

Re: שאלת הבהרה לגבי תשובות שניתנו בפורום וסותרות את הפלט לבדיקה

שליחה על ידי TA_IlanK » 23:50 14/11/2009

Golden כתב:שלום, אני מדבר כמובן על תרגיל 2, יש כמה תשובות שניתנו בפורום שסותרות את הפלט שניתן בדף העבודה ובאפשרויות הבדיקה המובנת שהכנסתם בקובץ Mastermind.java.

ציטוט של שאלות ותשובות (של צוות מבנה נתונים מתרגל ilankad) והסבר למה הם לא תואמים (לדעתי לפחות) את מה שיש בפועל בהתאם לפלט דוגמא שלכם:

לינקים מצורפים:
http://myforum.bgu.ac.il/phpBB3/viewtop ... 128&t=3916
http://myforum.bgu.ac.il/phpBB3/viewtop ... 128&t=3918

שאלה : "האם משימה 9 אמורה לקלוט את הניחושים (מהמשתמש)? או להשתמש באחת השיטות ע"מ לקבל את הניחושים?"
תשובה : "לא, עליה להשתמש בשיטות שמימשת לצורך בחירת הניחושים המתאימים. (ניחוש ראשון אקראי ושאר הניחושים מתיישבים)"

שאלה : "צריך לשלב את משימה 3 "randomizeSequence" בתוכנית הסופית? אם כן אז איפה?"
תשובה : "ברור, לצורך ניחוש התחלתי"

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

קוד: בחירת הכל

	/*/// +++++++++++++++++++++++++ test for printGame and play +++++++++++++++++++++++++

			int[]arr1 = {1,2,3,4};
			printGame(arr1, play(arr1));

				//expected output:  the secret is 1 2 3 4
				//			  		the guess 0 1 2 3  gives (h/f): 0 3
				//			  		the guess 1 0 3 4  gives (h/f): 3 0
				//			 		 the guess 1 0 3 5  gives (h/f): 2 0
				//			 		 the guess 1 2 3 4  gives (h/f): 4 0
				//			 		 you guessed the secret within 4  rounds
כי אז איך הייתם יכולים לצפות לאותה תוצאה בפלט?

בנוסף גם בדוגמא לפלט שהכנסתם בקובץ Mastermind.java וגם בדוגמאות פלט בדף העבודה כל הניחושים מתחילים ב - 3 2 1 0, מה שתואם שימוש ב-nextRightfulGuess ולא ב - randomizeSequence , גם שאר פלטי הניחושים תואמים לניחוש נכון הבא בשילוב של ניחוש מתיישב כמובן (אני מניח שהאפשרות של nextRightfulGuess יותר הגיונית מהאפשרות של randomizeSequence כיוון שאתם צריכים לעשות בדיקה אוטומטית אז הפלט צריך להיות קבוע לכל תוכנית בגלל זה גם הבעיה יותר מוזרה לי).

* אני מקווה שהבהרתי את הבעיה כמו שצריך.

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

תודה מראש.
תשובה: הינך צודק בהחלט. למרות שלא צויין במפורש בתיאור העבודה כי הניחוש הראשון צריך להיות 3 2 1 0 , ע"מ שייצא לכם את אותו פלט כמונו אתם מתבקשים להתחיל בניחוש ראשון של 3 2 1 0 ולא ניחוש אקראי כפי שציינתי בשירשורים הקודמים
מבנה נתונים מתרגל

שלח תגובה

חזור אל “- מבוא לתכנות למערכות מידע”