חישוב פרומטציה

Shreky

New member
חישוב פרומטציה

היי, אני חדש פה. בכל מיקרה, אתגר אישי (או יותר נכון צריך לאיזו תוכנית) - חישוב פרומטציה של מספר. פרומטציה = תמורה = סידור אחר לספרות המספר. כלומר: המספר 874, חלק מהפרומטציות שלו יכולה להיות 478, 487, 784 וכו'. השאלה היא כמה פרומוטציות יכול להיות למספר הזה? (זה לא בעיה לעשות למספר הזה, הבעיה היא חישוב פרמוטציה למספרים יותר גדולים). בעיקרון רציתי לשאול אם יש למישהו רעיון. אני חושב שזה יהיה הגיוני אם תהיה לזה נוסחא מתמטית, כלומר נוסחא למס' מסוים בעל N איברים. השאלה אם יש ומישהו יודע אותה? ניתן לעשות זאת גם בעזרת הרבה לולאות מקוננות, אבל זה יהיה ממש לא יעיל.
 

gilad_no

New member
יש נוסחאות

חפש ספרים על קומבינטוריקה. בעיקרון הנוסחה הבסיסית זה מספר הספרות עצרת. אם זה מספר בעל 3 ספרות, ישנם 6 צרופים אפשריים (3*2*1) ההסבר הפשוט לזה הוא: יש לך 3 ספרות לבחור מהן. אנו רוצים לבנות את XYZ. לX - יש לנו 3 אפשרויות לבחור מהן (3 ספרות). לY - יש 2 אפשרויות (באחת כבר השתמשנו), ולZ - נשארה רק סיפרה אחת. אם מכפילים הכל ביחד - יוצא לנו 6.
 

עידו123456

New member
ואפשר לייצר אותם

בקלות בעזרת תוכנית קצרה עם רקורסיה. שים לב לרצפים הבאים של {1,2,3}: 123 132 213 231 312 321 קאפיש?
 

vbgames

New member
תוספת קטנה

בעקרון הנוסחא לסידור n איברים היא n עצרת(1*2*3*...*n) אבל שים לב שאם לדוגמא נתון לך מספר שכזה: 24242 המספר שתיים חוזר 3 פעמים והמספר 4 חוזר פעמיים. לא משנה אם תחליף בין מספרים שהם אותו דבר, לכן אתה צריך לחלק את הn עצרת שהיא הנוסחא הכללית, ב 2 עצרת וב3 עצרת. זאת אומרת שלמספר שנתתי מספר הסידורים שאפשר לעשות עם הספרות הוא:
(5*4*3*2*1)/(2*1*3*2*1)​
שים לב שאתה יכול לממש את החישוב של העצרת ברקורסיה אם יש אפשרות שאחת הספרות היא 0, אז צריך להחסיר את המצבים שבהם 0 היא הספרה השמאלית ביותר. מספר המצבים שבהם 0 היא השמאלית ביותר הוא (n-1) עצרת. אם יש יותר מספרה 0 אחת במספר... לא יודע תנסה לחשוב על משהו
 

fatfish

New member
מאוד פשוט...

כדי למצא את מספר הצרופים שניתן ליצור: X! כלאמר, אם יש 3 תווים/מספרים - ניתן לסדר אותם ב-!3 (עצרת) אפשרויות אם יש 6 תווים/מספרים - ניתן לסדר אותם ב-!6 אפשרויות (720 דרכים שונות) אבל!!! אם לדוגמה יש לך את מספרים זהים, לדוגמה, כל התמורות של 1,1,2: אזי אתה מקבל: 112 121 211 ואזי יש לך רק 3 תמורות, גם לזה יש נוסחה מתורת ההסתברות...אני יכול לחשב אותה - אבל עדיף יהיה לפתוח ספר בסטטיסטיקה והסתברות מאשר להסתמך על הזכרון שלי.. :) בהצלחה,
 
למעלה