מציג תוצאות 1 עד 4 מתוך 4

אשכול: רקורסיה במחשבים

  1. #1
    הסמל האישי שלYair2597 משתמש רשום משתמש מתחיל

    פרטי משתמש

    ברירת מחדל רקורסיה במחשבים

    הי צריך עזרה והסבר בתרגיל
    תודה מראש לעוזרים ושבת שלום .
    קבצים מצורפים קבצים מצורפים
    • סוג הקובץ: jpg תרגיל ברקורסיה.jpg‏ (38.0 ק"ב , 19 צפיות) שאלה 1- 50 נקודות (להגשה) כתבו שיטה סטטית רקורסיבית המקבלת כפרמטר מספר שלם חיובי num ומחזירה את מספר הפתרונות למשוואהxl +x2+x3 = num כאשר נתון ששלושת ה- * -ים הם מספרים שלמים וחיוביים בין 1 ל-10. השיטה צריכה גם להדפיס את הפתרונות האלו, כל פתרון בשורה נפרדת. סדר ההדפסה לא משנה. לדוגמא, • אס 3 = mגום אזי השיטה תחזיר את הערך 1 שכן יש רק פתרון אחד למשוואה3= x14x2+x3 והוא כאשר 1 =xl=1,x2=1,x3. לכן השיטה תדפיס 1+1+1 • אם 5= num אזי השיטה תחזיר את הערך 6 ותדפיס את הפתרונות הבאים:1+1+31+2+2 חתימת השיטה:public static int solutions(int num)2+1+21+1- אם 3=num או 30

  2. #2
    הסמל האישי שלYes מדריך ויועץ חבר Emath מתקדם

    פרטי משתמש

    ברירת מחדל

    הרעיון: נעבור על כל המספרים 1 עד 10 וננסה להציב אותם באינדקס הראשון. כעת ננסה למצוא פתרון למשוואה עם משתנה אחד פחות ושסכום המשתנים הוא $num$ פחות הניסיון, כלומר $x_2 + x_3 = num - \text{try}$. זאת אומרת שעברנו ממצב של לפתור עבור משוואה עם 3 נעלמים, למשוואה עם 2 נעלמים ופתרנו אותה בצורה רקורסיבית דומה. תנאי העצירה הוא שהצבנו לכל המשתנים - אם לאחר ההצבה השלישית $num == 0$, אז הפתרון טוב וסופרים אותו, ואם לא אז הפתרון לא טוב ולא סופרים אותו.

    להלן הפתרון (ב-Java) עם הדוגמה שבה $num=7$:
    וההדפסה נראת כך:

    1+1+5=7
    1+2+4=7
    1+3+3=7
    1+4+2=7
    1+5+1=7
    2+1+4=7
    2+2+3=7
    2+3+2=7
    2+4+1=7
    3+1+3=7
    3+2+2=7
    3+3+1=7
    4+1+2=7
    4+2+1=7
    5+1+1=7
    num of solutions is 15

    מוזמן לשאול אם משהו לא ברור.

  3. #3
    הסמל האישי שלYair2597 משתמש רשום משתמש מתחיל

    פרטי משתמש

    ברירת מחדל

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

  4. #4
    משתמש רשום משתמש מתחיל

    פרטי משתמש

    ברירת מחדל

    היי, חשבתי על כיוון אחר.
    לאתחל את שלושת האיקסים ל-1, ובכל פעם להעלות את ספרת היחידות ולבדוק את הסכום של שלושתם.
    כל עוד הסכום קטן מהמספר, נעלה את האיקס השלישי ב-1, ונבדוק שוב.
    כאשר האיקס השלישי עבר את ה-10, ועדיין לא הגענו למספר, נתחיל להעלות את האיקס השני בכל פעם (האיקס הראשון נשאר זהה, האיקס השלישי מאותחל ל-1).
    כאשר האיקס השני עבר את ה-10, ועדיין לא הגענו למספר, נתחיל להעלות את האיקס הראשון בכל פעם (האיקס השני והשלישי מאותחלים ל-1).
    אם הגענו למספר - נדפיס את השלשה ונשחק עם האיקס השני והשלישי - נעלה את השני באחד ונוריד מהשלישי אחד (כך נשארים באותו סכום), עד שנגיע לאפס בשלישי ואז נעלה את הראשון באחד ואת השניים האחרים נאתחל ל-1.
    מקווה שהצלחתי להסביר את עצמי כמו שצריך...
    זה יהיה הרבה יותר ברור דרך דוגמה:
    נניח ש-num=6.
    מתחילים מ-1,1,1 ועולים עד 1,1,4.
    מכאן גם מגיעים ל-1,2,3, ל-1,3,2, ל-1,4,1 ול-1,5,0 שהוא לא טוב לנו ולכן נמשיך לבדוק החל מ-2,1,1.
    נעלה עד 2,1,3 ומכאן נגיע גם ל-2,2,2, ל-2,3,1 ול-2,4,0 שהוא לא טוב לנו לכן נמשיך לבדוק החל מ-3,1,1.
    כך הלאה עד הסוף.
    להלן הקוד ב-#C, המעבר ל-Java די ברור לדעתי...
    ‏‏לכידה.JPG
    אהבתי ThePrince אהב \ אהבו את התגובה
     

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

Users Browsing this Thread

כרגע 1 משתמשים צופים באשכול זה. (0 חברים ו 1 אורחים )

ביקרו באשכול זה : 9

הרשאות

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

לכל שאלה ניתן ליצור איתנו קשר
הצטרפו אלינו