לולאה שמפרקת מספר

לולאה שמפרקת מספר

יש למישהו רעיון כיצד לכתוב לולאה שמפרקת מספר כלשהו (נניח N) לכל הגורמים שלו? דוגמה: N=7 הפלט צריך להיות: 6,1 5,2 5,1,1 4,3 4,2,1 וכו' זו חייבת להיות לולאה...
 

ron369

New member
איך אתה מגדיר "לולאה"?

שהתכנית חייבת לעבור על כל מספר פעם אחת? או מה?
 

VoodooKid

New member
אני חושב שאתה מתכוון

לחיבור בלבד כי חיסור וחיבור יתן אינסוף תשובות
 

gil levi

New member
רעיון

אם אתה יודע לפרק מספר לשני גורמים, למה שלא תפעיל ברקורסיה את הפונקציה על כל אחד משניהם? אם למשל N=7, אז לא קשה לפרק אותו ל (1,6) , (2,5), (3,4) , (4,3), (5,2), (6,1). צריך להציג את כל הזוגות האלה ובנוסף לפרק כל אחד מהמספרים בכל זוג לגורמיו. למשל: f(7) = 1 f(6) = 1 1 f(5) = 1 f(2) f(4) = 1 f(3) f(3) = 1 f(4) f(2) = 1 f(5) f(1) zzz כאשר f היא הפונקציה שמפרקת מספר לגורמיו.
 

ron369

New member
זה לא כ"כ טוב

כי יכול להיות שיהיו חזרות. למשל: n=7 5,2 3,2,2 3,4 3,2,2 ושים לב שאותו המספר (ובאותה תצורה) חזר על עצמו.
 

MegaMango

New member
שיקוץ

רעיון - נגיד שניקח את המס' 7 . קודם, נחלק אותו ל- 1 1 1 1 1 1 1 ואז כל פעם ניקח מס' אחר של אחדים , נחבר אותם ועל שאר האחדים שוב נפעיל את הפונ', כלומר- 2 1 1 1 1 1 ואז נפעיל על 5 האחדים האחרים את הפונ'. אחר כך , אחרי שנטפל בטומאה הזו, נעבור ל- 3 1 1 1 1 ונפעיל על 4 האחדים את הפונ'. לא יודע אם זה עובד >.> מה אתה אומר?
 

ron369

New member
נראה שזה יעבוד, אבל זה תלוי במימוש

כי אחרת יכול להיות ש: 1111 112 22 ו: 1111 211 22 ואז 22 יודפס פעמיים. אבל אני מניח שהתכוונת לזה שאתה לוקח מספר, דורש שהוא יהיה ראשון, ואז מוסיף משמאלו (למשל) את האפשרויות האחרות שנשארו כאשר הוא ראשון. אני חושב שזה יעבוד
אגב, אפשר ככה אפילו לנטרל חזרות של פרמוטציות כאשר נדרוש שהם יהיו ממוינים.
 

MegaMango

New member
יאפ...מה שההוא שהגבתי לו אמר P:

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