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