בעצם הבעיה היא יצירת פרמוטציה אקראית בהתפלגות אחידה,
יש מספר אלגוריתמים לפתרון הבעיה יעילים יותר ויעילים פחות,
להלן פתרון(לא הכי יעיל בעולם) שכתבתי לבעיה בעבר, (כחלק מאלגוריתם
גנטי לפיצוח צפני החלפה) typdef int Permut[26];int ran_per(Permut a) { int i,j,t; for (i=0;i<26;++i) a[i]=-1; for (i=26;i;--i} { t=rand()%i; for (j=0;t;++j) if (a[j]<0) --t; while (a[j]>=0 j++; a[j]=i-1; } return 0; } העתקתי ידנית, יתכנו שגיאות קלות.
|
DRYICE