ABA


"שאלה ברקורסיה עם הגבלות"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21097 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21097
Mirage 
חבר מתאריך 18.12.11
5193 הודעות
   20:53   21.01.15   
אל הפורום  
  שאלה ברקורסיה עם הגבלות  
 
   היי יש לי שאלה , צריך עזרה

איך אפשר למצוא את מס' המסלולים האפשריים אם נתון לי נק' התחלה
ונק' הסוף במערך דו מימדי שהוא ריבוע, בלי לפגוע באלכסון בצורה רקרוסיבית ללא לולאות?\

כל צד יכול להתבצע משכן לשכן, לא כולל אלכסון בין שני צעדים
לדוגמא:
אם נתון לי נק' ההתחלה : 2.1 ואני צריך להגיע ל4.2 במערך שגודלו 5X5 אז הצעדים שאני צריך לבצע במסלול אחד כזה הוא 3.1, 3.2, 4.2

דוגמא למערך, ירוק זה שטח המותר, והשחור השטוח האסור:

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

אשמח לראיונות ועזרה.
תודה רבה.


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  בלי קשר שעד כמה שאני זוכר, זה ערך שאפשר לחשב עם מספר קטאלן ldan192  21.01.15 21:00 1
     תודה רבה עזרת לי! Mirage  22.01.15 08:03 2
     מספרי קטלן סופרים את מספר המסלולים העולים מונוטונית Zippo  22.01.15 20:54 3
         אין מצב, כי אם כן התשובה תמיד הייתה או 0 או אינסוף (לופים אינסופיים) ldan192  24.01.15 11:04 4
             הוא לא הגדיר את ''חוקיות'' המסלולים המותרים. Zippo  24.01.15 18:57 5

       
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   21:00   21.01.15   
אל הפורום  
  1. בלי קשר שעד כמה שאני זוכר, זה ערך שאפשר לחשב עם מספר קטאלן  
בתגובה להודעה מספר 0
 
והכי ביצועי זה להשתמש ב-dynamic programming אבל רק בצורה רקורסיבית.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Mirage 
חבר מתאריך 18.12.11
5193 הודעות
   08:03   22.01.15   
אל הפורום  
  2. תודה רבה עזרת לי!  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Zippo 
חבר מתאריך 26.5.02
7921 הודעות, דרג אמינות חבר זה
   20:54   22.01.15   
אל הפורום  
  3. מספרי קטלן סופרים את מספר המסלולים העולים מונוטונית  
בתגובה להודעה מספר 1
 
לפי איך שהוא תיאר את השאלה, מותר מסלולים שמכילים "צורת ח'", למשל: ימינה->ימינה->למעלה->ימינה->למטה->...

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

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

כדי להגיע לנוסחא כזאת, הייתי מחשב ידנית כמה מספרים ראשונים, ומחפש את הסדרה ב: https://oeis.org


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   11:04   24.01.15   
אל הפורום  
  4. אין מצב, כי אם כן התשובה תמיד הייתה או 0 או אינסוף (לופים אינסופיים)  
בתגובה להודעה מספר 3
 
וכן, הכוונה למשהו בסגנון 2*(C(n-1


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Zippo 
חבר מתאריך 26.5.02
7921 הודעות, דרג אמינות חבר זה
   18:57   24.01.15   
אל הפורום  
  5. הוא לא הגדיר את ''חוקיות'' המסלולים המותרים.  
בתגובה להודעה מספר 4
 
חוק אפשרי: אסור לעבור על אותה משבצת פעמיים (מה שהיה לי בראש כשרשמתי את התגובה הקודמת). אתה צודק שללא הגבלות כלל זה אינסוף אפשרויות, וצודק שאם מדובר על מסלולים מונוטונים עולים זה C(n-1)*2. או אם מותר לדרוך על האלכסון אך לא לחצות אותו זה C(n)*2.

בכל מקרה, אחרי קריאת השאלה שוב, הוא כנראה צריך פונקציה ב- (לפחות) 2 משתנים. נתונה לו נקודת התחלה, ונקודת סיום. זה לא תמיד מסע מ-(0,0) ל- (n,n)


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

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

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



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