ABA


"צריך עזרה בנושא רקורסיות...."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15628 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15628
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק, 2 נקודות
   20:50   24.12.09   
אל הפורום  
  צריך עזרה בנושא רקורסיות....  
 
   טוב כמו שאמרו לנו , זה הנושא הכי קשה בתיכנות.

הייתי בטוח שהבנתי הכול , מסתבר שלא הבנתי כלום =]

או יותר נכון ככה ההרגשה...

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

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

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

להזין סכום נדרש.

והתוכנה תדפיס את כול ה SUB STRINGS שמרכיבים את הסכום המבוקש.

אני לא מצפה שאנשים יפתרו לי את התרגיל.. אבל אולי כיוון?

בהתחלה חשבתי על לולאות ( אם אני לא טועה זה היה 4 לולאות אחת בתוך השניה)

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

וככה הלאה ואחרי זה להרכיב איזו שהיא קומבינציה עם הרמות של העץ

אבל עדין גם זה לא מכסה את הכול..


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



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

  האשכול     מחבר     תאריך כתיבה     מספר  
  לא ציינת באיזו שפה, אז כתבתי לך פסאודו: ldan192  24.12.09 21:10 1
     אוקי.. Yariv-H 24.12.09 22:18 2
         כן, זה פחות או יותר מה שרשמתי, אבל במקום ldan192  24.12.09 22:57 3
  רעיון הרקורסיה. Deuce  25.12.09 14:32 4
  קודם כול תודה לכולם Yariv-H 29.12.09 09:33 5
     התשובה שלך בודקת אבל רק סכומים ולא הפרשים. ldan192  29.12.09 14:59 6
         אוקי. Yariv-H 29.12.09 23:41 7

       
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   21:10   24.12.09   
אל הפורום  
  1. לא ציינת באיזו שפה, אז כתבתי לך פסאודו:  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 24.12.09 בשעה 22:03 בברכה, ldan192
 
שמתי לב עכשיו לטעות קטנה:


fun(Input: int array, Output: int array, Req: int, Sum: int) : void
begin:
if (Input.size = 0 && Req = Sum) // = is ==, not :=
out.println(Output.firt(Output.size-1).concat("=".concat(Sum))); // print without the last char
else if (Input.size = 0) endif;
else
fun(array+1, Output.concat(array.concat("+")), Req, Sum+array.toInt());
fun(array+1, Output.concat(array.concat("-")), Req, Sum-array.toInt());
fun(array+1, Output, Req, Sum);
endif;
end;

וקוראים לפונקציה עם
(fun(arr, , sum, 0
כאשר arr זה מערך המספרים ו-sum זה הסכום המבוקש.
באותה מידה זה יכל גם להיות double ועם עוד קצת פעולות גם סטרינגים.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק, 2 נקודות
   22:18   24.12.09   
אל הפורום  
  2. אוקי..  
בתגובה להודעה מספר 1
 
   או שלא הבנתי את מה שרשמתה או שלא הסברתי את עצמי נכון...

קודם כול סליחה שלא אמרתי את השפה.. אבל זאת JAVA

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


{8,4,5,-1,-5}

הסכום המתבקש הוא 12

התדפיס יהיה
8,4
8,5,-1
8,4,5,-5

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

תודה



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   22:57   24.12.09   
אל הפורום  
  3. כן, זה פחות או יותר מה שרשמתי, אבל במקום  
בתגובה להודעה מספר 2
 
שזה הפלט, הפלט אצלי הוא

8+4=12
-1+8+5=12
5+8+4-5=12

אוךך, זה משגע כמה הפורום הזה מפגר כשמנסים לכתוב משהו בו משמאל לימין בעעע!!!




בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות, דרג אמינות חבר זה
   14:32   25.12.09   
אל הפורום  
  4. רעיון הרקורסיה.  
בתגובה להודעה מספר 0
 
זה בידיוק מבוסס על תתי קבוצות.
אתה רץ על האיברים ופעם אחת מוסיף אותו לסכום ופעם אחת לא.

foo(int[] ar, int i, int target, int sum)
{
if (i == ar.length)
if (sum == target)
return 1;
else return 0;
return foo(ar, i+1, target, sum += ar[i]) +
foo(ar, i+1, target, sum);
}






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק, 2 נקודות
   09:33   29.12.09   
אל הפורום  
  5. קודם כול תודה לכולם  
בתגובה להודעה מספר 0
 
   דבר שני אני דיי מתוסכל , אחרי מה שרשמתם לי פה עבר עלי סופשבוע קשה.

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

לא לימדו אותנו כמו צריך את נושא הרקורסיה..

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

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


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


public void SubStringCheck (int sum, int target, int array,int i,String toPrint)
{
//stop condition
if (target==sum )
{
System.out.println (toPrint.substring(0, toPrint.length()-1));
if (i<array.length)
{
SubStringCheck (sum+array,target,array,i+1,toPrint+array+",");
}
}
else
{
if (i<array.length)
{
SubStringCheck (sum+array,target,array,i+1,toPrint+array+",");
SubStringCheck (sum ,target,array,i+1,toPrint);
}
}
}

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

תודה חברה...



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   14:59   29.12.09   
אל הפורום  
  6. התשובה שלך בודקת אבל רק סכומים ולא הפרשים.  
בתגובה להודעה מספר 5
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Yariv-H לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
5856 הודעות, 1 פידבק, 2 נקודות
   23:41   29.12.09   
אל הפורום  
  7. אוקי.  
בתגובה להודעה מספר 6
 
   טעות שלי עכשיו אני רואה באמת שלא רשמתי את זה בהודעה הראשונה.
סורי על ההטעייה .
אבל זאת הייתה הבקשה... =]

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



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net