ABA


"|מבקש| עזרה בשאלה- אלגוריתם לסידור אנשים בשורה"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15184 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15184
פנסלווניה
חבר מתאריך 3.11.04
1403 הודעות
   18:56   07.02.09   
אל הפורום  
  |מבקש| עזרה בשאלה- אלגוריתם לסידור אנשים בשורה  
 
   אני צריך לעשות תוכנה ב C שתחשב את כל האפשרויות של סידור אנשים בשורה, למשל לסדר 4 אנשים זה 4 עצרת, אנ צריך תוכנה שתבנה את כל האופציות שקיימות ברקורסיה

יש למישהו רעיונות ?


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אממ akoka 07.02.09 18:57 1
  את האופציות עצמן... פנסלווניה 07.02.09 19:19 2
  שלום אדון פנסלווניה. Deuce  07.02.09 20:15 3
     תודה ידידי ,כבר הכנתי פתרון, akoka 07.02.09 20:17 4
     קודם כל סליחה אני פשוט לא נוגע במחשב כל השבוע פנסלווניה 07.02.09 20:21 5
         :\ Deuce  07.02.09 20:38 6
  תודה רבה אחי פנסלווניה 07.02.09 20:45 7
  מה זה אומר: מערך עם השמות ? פנסלווניה 07.02.09 20:48 8
     סידור אנשים בשורה .. Deuce  07.02.09 21:08 9
     סידור אנשים בשורה .. Deuce  07.02.09 21:08 10
     סידור אנשים בשורה .. Deuce  07.02.09 21:08 11
         נגיד המשתמש הכניס פנסלווניה 07.02.09 21:29 12
             שאלה בסיסית ומענינת menda  08.02.09 00:09 13
                 חשבתי שיהיה פשוט.. menda  08.02.09 00:36 14
                     מה נסגר עם התשובות סטייל ג'יימס בונד האלו? akoka 08.02.09 13:36 17
  הצלחתי... menda  08.02.09 01:25 15
  אלגוריתם ב-JAVA, Deuce  08.02.09 03:11 16
     אלגוריתם C menda  09.02.09 02:22 18

       
akoka

   18:57   07.02.09   
אל הפורום  
  1. אממ  
בתגובה להודעה מספר 0
 
   אתה רוצה שהיא תחזיר לך את מספר האופציות באמצעות רקורסיה (כאילו תחשב עצרת) ,או שאתה רוצה שהיא תחזיר לך את האופציות עצמן?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
פנסלווניה
חבר מתאריך 3.11.04
1403 הודעות
   19:19   07.02.09   
אל הפורום  
  2. את האופציות עצמן...  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   20:15   07.02.09   
אל הפורום  
  3. שלום אדון פנסלווניה.  
בתגובה להודעה מספר 0
 
זאת הפעם השלישית שאתה מבקש עזרה.
וכפי שנהגת לעשות בפעמים הקודמות, אני אשקיע את זמני לעזור לך (שלי זה ממש לא בעייה אגב לפתור את הדברים האלה), ואז אתה תיעלם ולא תגיד תודה.
ועוד כמה ימים תחזור חלילה עם שאלה נוספת.

שאלה לי אליך:
האם זאת התנהגות מקובלת?






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

   20:17   07.02.09   
אל הפורום  
  4. תודה ידידי ,כבר הכנתי פתרון,  
בתגובה להודעה מספר 3
 
   אבל לא אפרסם אותו עד שהוא ייתנצל ויגיד תודה על כול פעם שהוא שכח.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
פנסלווניה
חבר מתאריך 3.11.04
1403 הודעות
   20:21   07.02.09   
אל הפורום  
  5. קודם כל סליחה אני פשוט לא נוגע במחשב כל השבוע  
בתגובה להודעה מספר 3
 
   וגם לא מספיק אפילו לראות את התשובה שלך וזה כבר אחרי זמן ההגשה שלי... אז סליחה אם נפגעת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   20:38   07.02.09   
אל הפורום  
  6. :\  
בתגובה להודעה מספר 5
 
ערכתי לאחרונה בתאריך 07.02.09 בשעה 20:38 בברכה, Deuce
 
אני מקווה שלפעמים הבאות כן תדאג לרשום תודה, כי בסה"כ גם אני עסוק, מאמין שגם אחרים עסוקים, אולי יותר ממך ואולי פחות. אני יכול להגיד לך שבאופן אישי אני כעת נמצא בתקופה מאוד לחוצה ובזה הרגע לומד למבחנים.

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

פסאדו:
הדפסת_צירוף(מערך, מחרוזת)
אם מערך נקי, הדפס מחרוזת.
אחרת:
רוץ על המערך:
אם תאI לא ריק אז:
רוקן מערך[I] (ושמור את התא ב-TEMP).
הדפסת_צירוף(מערך, מחרוזת + TEMP).

אדוםם
קטןן

שחורר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
פנסלווניה
חבר מתאריך 3.11.04
1403 הודעות
   20:45   07.02.09   
אל הפורום  
  7. תודה רבה אחי  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
פנסלווניה
חבר מתאריך 3.11.04
1403 הודעות
   20:48   07.02.09   
אל הפורום  
  8. מה זה אומר: מערך עם השמות ?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   21:08   07.02.09   
אל הפורום  
  9. סידור אנשים בשורה ..  
בתגובה להודעה מספר 8
 
אז נניח השמות של האנשים.
לפי מה שהבנתי אתה רוצה פלט של כל האופציות.






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   21:08   07.02.09   
אל הפורום  
  10. סידור אנשים בשורה ..  
בתגובה להודעה מספר 8
 
אז נניח השמות של האנשים.
לפי מה שהבנתי אתה רוצה פלט של כל האופציות.






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   21:08   07.02.09   
אל הפורום  
  11. סידור אנשים בשורה ..  
בתגובה להודעה מספר 8
 
אז נניח השמות של האנשים.
לפי מה שהבנתי אתה רוצה פלט של כל האופציות.






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
פנסלווניה
חבר מתאריך 3.11.04
1403 הודעות
   21:29   07.02.09   
אל הפורום  
  12. נגיד המשתמש הכניס  
בתגובה להודעה מספר 11
 
   1234

הפלט צריך להיות

1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
menda 
חבר מתאריך 22.5.06
3563 הודעות
   00:09   08.02.09   
אל הפורום  
  13. שאלה בסיסית ומענינת  
בתגובה להודעה מספר 12
 
   .


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
menda 
חבר מתאריך 22.5.06
3563 הודעות
   00:36   08.02.09   
אל הפורום  
  14. חשבתי שיהיה פשוט..  
בתגובה להודעה מספר 13
 
  


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

   13:36   08.02.09   
אל הפורום  
  17. מה נסגר עם התשובות סטייל ג'יימס בונד האלו?  
בתגובה להודעה מספר 14
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
menda 
חבר מתאריך 22.5.06
3563 הודעות
   01:25   08.02.09   
אל הפורום  
  15. הצלחתי...  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Deuce 
חבר מתאריך 1.9.08
6225 הודעות
   03:11   08.02.09   
אל הפורום  
  16. אלגוריתם ב-JAVA,  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 08.02.09 בשעה 03:46 בברכה, Deuce
 
מתבסס בידיוק על הרעיון שאמרתי לך:

public static String remove(String str, char c) {
String strC = "";
for (int i = 0; i<str.length(); i++) {
if (c != str.charAt(i))
strC = strC + str.charAt(i);
}
return strC;
}

static int count = 0;

public static void perm(String str , String output) {
if (str.isEmpty()) {
System.out.println(output);
count++;
}
else {
for (int i=0; i<str.length(); i++) {
String out = output + str.charAt(i);
String strC = remove(str,str.charAt(i));
perm(strC,out);
}
}
}

דוגמא לקריאה לפונקציה:

perm("12345","");

הוספתי משתנה גלובאלי count כדי לבדוק שאכן אני מונה את כל הפרמוטציות.






                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
menda 
חבר מתאריך 22.5.06
3563 הודעות
   02:22   09.02.09   
אל הפורום  
  18. אלגוריתם C  
בתגובה להודעה מספר 16
 
   ערכתי לאחרונה בתאריך 09.02.09 בשעה 02:33 בברכה, menda
 

#include <stdio.h>
#include <stdlib.h>

int Permutations(int* group,int groupsize, int* permut,const int permutsize);

int main()
{
int group={1,2,3,4};
int size=sizeof(group)/sizeof(int);
int* permut=(int*)malloc(size*sizeof(int));
int N;

N=Permutations(group,size,permut,0);
printf("\n N=%d \n", N);

free(permut);

getchar();
return 0;
}

int Permutations(int* group,int groupsize, int* permut,const int permutsize)
{
int i,j,result=0;
int* smaller;

if(groupsize==0)
{
for(i=0;i<permutsize;++i) printf("%d",permut); printf("\n");
return 1;
}
else
{
result=0;
for (i=0;i<groupsize;++i)
{
smaller=(int*)malloc((groupsize-1)*sizeof(int));
for(j=0;j<groupsize-1;++j) smaller=group; //new group without 'i' term
permut=group; //add 'i' element for printing latter..

result+=Permutations(smaller,groupsize-1,permut,permutsize+1); //Recursion

free(smaller);
}
return result;
}
}


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

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

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



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