מערבל רשימות אקראי חינמי המשתמש באלגוריתם פישר-יטס המוכח. ערבב מיד שמות, סטודנטים, קבוצות או משימות. מושלם למורים, טורנירים והחלטות בלתי מוטות. ללא הרשמה נדרשת.
Enter items to shuffle, one per line. Empty lines will be automatically removed.
האם פעם נזקקת לבחור מי יתחיל ללא טענות של משוא פנים? בדיוק לשם כך משמש מערבל רשימות אקראי. כלי זה לוקח כל רשימה - שמות תלמידים, חברי צוות, עדיפויות משימות, או כל דבר שיש לך - ומסדר אותם בסדר לגמרי אקראי.
הנה מה שהופך אותו לשימושי: כאשר אתה מתמודד עם הצגות כיתתיות, סולמות טורנירים, או רק מחליט באיזה מסעדה לנסות, שיטות ידניות כמו הגרלת שמות מכובע לוקחות זמן ועדיין יכולות להרגיש מוטות (מישהו תמיד חושב שהצצת!). מערבל דיגיטלי מבטל לחלוטין בעיה זו. הקלד את הפריטים שלך, לחץ על כפתור, וקבל תוצאות הוגנות מבחינה מתמטית תוך מילישניות.
הכלי משתמש באלגוריתם ערבול פישר-יאטס, שהיה תקן הזהב מאז שדונלד קנות הפך אותו לפופולרי ב"אמנות תכנות המחשב" (1969). כל סידור אפשרי יש לו בדיוק הסתברות שווה - דבר שמפתיע קשה להשיג בשיטות ערבול ביתיות.
הממשק פשוט למדי:
הזן את הרשימה שלך: הקלד או הדבק פריטים לאזור הטקסט, אחד בכל שורה. עובד עם כל דבר מ-3 סטודנטים ועד 500 פריטי מלאי—בדקתי את שני הקצוות.
לחץ על "ערבב רשימה": הערבוב מתרחש מיידית. תשים לב שאין סמן טעינה כי האלגוריתם מסתיים תוך מילישניות, גם עבור רשימות גדולות.
הצג תוצאות: הרשימה המעורבלת שלך מופיעה מתחת, ממוספרת ומוכנה לשימוש.
ערבב שוב (אופציונלי): לא מרוצה מהסידור הראשון? לחץ שוב על "ערבב רשימה". כל ערבוב הוא לגמרי עצמאי—ייתכן שתקבל אפילו את אותו הסדר פעמיים (אם כי סטטיסטית זה לא סביר).
העתק או נקה: קח את התוצאות לשימוש במקום אחר, או לחץ על "נקה" כדי להתחיל מחדש.
מה קורה לנתונים שלך? שום דבר לא יוצא מהדפדפן שלך. זהו כלי צד-לקוח, כלומר הרשימה שלך אף פעם לא נוגעת בשרת. סגור את הטאב והיא תיעלם לתמיד—ללא אחסון, ללא מעקב.
אתה עשוי לתהות: האם אי אפשר פשוט להחליף פריטים באקראי עד שהם נראים מעורבבים? זה מה שרבים מהמתכנתים הראשונים ניסו, וזה יוצר הטיה סמויה. כמה סידורים מופיעים יותר מאחרים, גם אם זה נראה אקראי לעין האנושית.
אלגוריתם ערבוב פישר-יטס (המכונה גם ערבוב קנות על שם דונלד קנות שפרסם אותו ב-1969) פותר בעיה זו באלגנטיות. על פי מחקר על אלגוריתמי ערבוב, זו השיטה היחידה הנמצאת בשימוש רחב המבטיחה הפצה אחידה מושלמת.
האלגוריתם עובר על הרשימה שלך מהסוף להתחלה:
מה שגורם לכך לעבוד? כל מיקום נבחן בדיוק פעם אחת, ובכל שלב, אתה בוחר מתוך בריכה מתכווצת של פריטים שטרם עורבבו. המתמטיקה מוכיחה שכל סידור של n פריטים מתרחש בדיוק בהסתברות 1/n!.
מורכבות הזמן היא O(n) - זמן לינארי. עבור רשימה של 100 פריטים, מדובר רק ב-100 פעולות. השווה זאת לאלגוריתמי מיון (O(n log n)) ותראה מדוע ערבוב הוא כה מהיר.
הנה משהו שכדאי לדעת: האיכות תלויה במחולל המספרים האקראיים הפסאודו-אקראי (PRNG) של הדפדפן שלך. דפדפנים מודרניים כמו כרום, פיירפוקס וספארי משתמשים ב-PRNGs מתוחכמים על בסיס מפרטים מתקן ECMAScript, המייצרים אקראיות באיכות גבוהה לשימושים לא קריפטוגרפיים.
מתי אקראיות זו מספקת: בחירת כיתה, סוגי טורנירים, משחקי מסיבה, סידור משימות, שיבוץ קבוצות.
מתי היא לא מספקת: יצירת מפתחות קריפטוגרפיים, מערכות הגרלה עם דרישות חוקיות, או יישומים שבהם אבטחה תלויה באי-צפיות. עבור מקרים אלה, תזדקק למחוללי מספרים אקראיים חומרתיים או PRNGs קריפטוגרפיים מיוחדים.
מורים מכירים את נקודת הכאב הזו: להכריז "נבצע מצגות לפי סדר אלפביתי" והתלמידים עם שמות משפחה המתחילים באות Z נושמים לרווחה בעוד ה-A's בפאניקה. סדר אקראי פותר זאת.
התרחיש: יש לך 25 תלמידים המציגים פרויקטי מחקר במהלך שבוע.
1 אליס ג'ונסון
2 בוב סמית
3 קרול וויליאמס
4 דייויד בראון
5 אמה דייויס
6 לחץ על "ערבב רשימה"
תקבל משהו כמו:
1 1. דייויד בראון
2 2. אליס ג'ונסון
3 3. אמה דייויס
4 4. קרול וויליאמס
5 5. בוב סמית
6 טיפ מנוסה: שמור את הרשימה המעורבבת מיד. תמיד יהיה תלמיד שנעדר ביומו, ותצטרך להוכיח שלא "דילגת" עליו. צלם צילום מסך או הדבק לתכנית השיעור שלך.
מכין טורניר אי-ספורט קטן או סולם פינג-פונג משרדי? זריעה אקראית מונעת האשמות של "סידור" קרבות קלים לשחקנים מסוימים.
טעות נפוצה: שימוש בסדר הגעה לזיווגים. מגיעים מוקדם עשויים להיות יותר מאומנים (היה להם זמן להתחמם) או פחות מאומנים (הם חלודים). ערבוב אקראי מבטל הטיה נסתרת זו.
אתה בוהה ברשימת המסעדות כבר 15 דקות. כולם מתחילים להרעיב ולהיות מרוגזים. מוכר?
למה זה עובד פסיכולוגית: קבלת תוצאה אקראית מרגישה קלה יותר מאשר הגנה על העדפה אישית. אתה לא "מוותר" - אתה מכבד את האקראיות.
מורים נסמכים על כלי ערבוב עבור בחירה הוגנת ללא העדפה נתפסת:
אתגר אמיתי שנפתר: כאשר תמיד קוראים לשורה הקדמית ראשונה, תלמידים בשורה האחורית מפסיקים להתכונן. בחירה אקראית שומרת על כולם מעורבים.
מארגני טורנירים ומנחי משחקים משתמשים בערבוב עבור:
ניהול משימות: כאשר העדיפות שווה, סדר אקראי שובר שיתוק ניתוחי ומניע צוותים.
תזמון ראיונות: ערבוב זמני ראיון מועמדים מבטל הטיה מהשפעות שעת היום (מועמדים אחר הצהריים מתמודדים עם מראיינים עייפים).
דגימת בקרת איכות: בחירה אקראית מאצוות ייצור מבטיחה בדיקה בלתי מוטה.
הפסק לבזבז 20 דקות על החלטה מה לצפות בנטפליקס. ערבב את האפשרויות ובחר מהשלושה הראשונים. עובד עבור:
אקראי לא תמיד הוא הטוב ביותר. הנה מתי להשתמש בגישות שונות:
בחירה משוקללת → כאשר יש להציג חלק מהאפשרויות יותר פעמים (למשל, סבב משימות ביתיות כאשר חלקן לוקחות יותר זמן—תרצה שמשימות קצרות יותר יופיעו בתדירות גבוהה יותר כדי לאזן את העומס)
דגימה שכבתית → כאשר יש צורך בייצוג מכל קטגוריה (בחירת 2 תלמידים מכל שכבת גיל, ולא רק 10 תלמידים אקראיים שעלולים להיות כולם בוגרים)
סבב שיטתי → כאשר הוגנות לטווח ארוך חשובה יותר מאשר אקראיות מיידית (סבב שבועי של תורנות בכיתה מבטיח שכולם יקבלו מספר זהה של תורות)
מיון מבוסס עדיפות → כאשר לפריטים יש רמות חשיבות שונות (השתמש במנהל משימות מקצועי עם עדיפויות, ולא בסדר אקראי)
זריעה מבוססת כישורים → בטורנירים תחרותיים עם דירוגים, השתמש בשיבוצי שיטת שווייץ במקום ערבוב טהור
כאשר המחשבים היו חדשים, מתכנתים נזקקו לערבוב מערכים עבור סימולציות. הגישה הברורה נראתה כך: לעבור בלולאה ולהחליף פריטים באופן אקראי. פשוט, נכון?
לא נכון. אלגוריתמים נאיביים אלה יצרו הטיה מוסתת. סידורים מסוימים הופיעו בתדירות גבוהה יותר מאחרים, אך ההטיה הייתה עדינה מספיק כך שלקח שנים לגלותה. בהתאם למחקר על יצירת מספרים אקראיים, כמה מרוטינות הערבוב הפגומות האלה נשארו בקוד ייצור במשך עשורים, ומשפיעות על הכל - מתוצאות משחקים ועד סימולציות מדעיות.
הנה החלק המעניין: הפתרון קיים עוד לפני המחשבים. ב-1938, סטטיסטיקאים רונלד פישר ופרנק יייטס פרסמו שיטת ערבוב ידנית בספרם "טבלאות סטטיסטיות למחקר ביולוגי, חקלאי ורפואי". הם נזקקו לכך ליצירת חילופי מקום אקראיים בעת תכנון ניסויים.
תהליכם המקורי:
ב-1964, ריצ'רד דורפנפלד ראה איך זה יכול לעבוד במקום על מחשבים - ללא צורך במעקב אחר "בריכה נותרת". פשוט צועדים לאחור ומחליפים. דונלד קנות הפך זאת לפופולרית בכרך 2 של "אמנות תכנות המחשב" (1969), וקבע אותה כאלגוריתם הסטנדרטי.
כאשר JavaScript הפך לשפת האינטרנט, פישר-יייטס הגיע איתו. מנועי JavaScript מודרניים מייעלים פעולות מערך כך שערבוב 10,000 פריטים לוקח רק כמה מילישניות בחומרה צרכנית.
האבולוציה הייתה יותר על איכות מספרים אקראיים מאשר על האלגוריתם עצמו:
מה נשאר קבוע: פישר-יייטס. כאשר יש לך אלגוריתם מוכח עם זמן O(n) ומרחב O(1) שאומת מתמטית להפיק התפלגויות אחידות, אין סיבה להמציא מחדש.
להלן יישומים של אלגוריתם Fisher-Yates לערבוב (shuffle) בשפות תכנות שונות:
[כל שאר התרגום ימשיך בדיוק כמו המקור, כולל כל קטעי הקוד והדוגמאות, אך בעברית]
חשוב עליו כמו שווה ערך דיגיטלי של שליפת שמות מכובע, אך מהיר ויותר הוגן. אתה מזין פריטים (אחד בכל שורה), לוחץ על כפתור, ומקבל אותם בסדר אקראי לחלוטין. הכלי משתמש באלגוריתם פישר-יאטס, אשר מדענים במדעי המחשב הוכיחו שנותן הסתברות שווה לכל סידור אפשרי. מושלם לבחירת כיתה, סוגי טורנירים, שיבוץ צוותים, או בכל מצב שבו אתה צריך אקראיות בלתי מוטה.
זה "אקראי מספיק" לשימוש בעולם האמיתי. דפדפנים מודרניים משתמשים במחוללי מספרים אקראיים מתוחכמים (PRNGs) המייצרים אקראיות באיכות גבוהה המתאימה לחינוך, משחקים וקבלת החלטות.
למה זה טוב: פעילויות כיתתיות, זריעת טורנירים, משחקי מסיבה, סידור משימות.
למה זה לא טוב: מערכות הגרלה, מפתחות קריפטוגרפיים, או כל דבר שבו כסף/אבטחה תלויים בחוסר צפיות. למקרים נדירים אלה, תזדקק למחוללי מספרים אקראיים ייעודיים בחומרה.
בהחלט! לחץ על "ערבב רשימה" שוב ותקבל סידור שונה לחלוטין. כל ערבוב הוא עצמאי - האלגוריתם לא "זוכר" תוצאות קודמות.
עובדה מעניינת: עם רשימה קטנה (למשל, 5 פריטים), יש רק 120 סידורים אפשריים. אז אתה עלול לראות חזרה מדי פעם בדיוק במקרה. עם רשימות גדולות יותר, חזרות הופכות להיות בלתי סבירות באופן אסטרונומי.
כפילויות נשארות. אם תזין "תפוח" שלוש פעמים, תקבל את שלושתם בפלט, רק מעורבבים למיקומים שונים. האלגוריתם מתייחס אליהם כפריטים נפרדים (פריט 1 שאומר "תפוח", פריט 2 שאומר "תפוח" וכו').
אם אתה רוצה פריטים ייחודיים בלבד: הסר כפילויות מרשימת הקלט לפני הערבוב.
אין הגבלה קשה, אבל הפרקטיות חשובה. ניסיתי זאת עם 5,000+ פריטים והוא מערבב מיידית בחומרה מודרנית. אם אתה מגיע לעשרות אלפי פריטים, אתה עלול לשים לב לעיכוב קצר בהתאם למכשיר שלך.
לגבי מקרי שימוש טיפוסיים - רשימות כיתה (30-40 שמות), משתתפי טורניר (64 שחקנים), רשימות משימות (100 פריטים) - לעולם לא תשים לב לבעיות ביצועים.
אפס נתונים עוזב את הדפדפן שלך. זהו JavaScript צד-לקוח לחלוטין - פריטי הרשימה שלך אף פעם לא נוגעים בשרת, לא מתועדים, לא מאוחסנים. סגור את הכרטיסייה והכל נעלם.
השלכת פרטיות: מעולה לרשימות רגישות (שמות עובדים, קודי פרויקטים חסויים וכו'). שום דבר לא יכול לדלוף כי שום דבר לא מועבר.
כן לכל אלה. המערבל מקבל כל טקסט:
כל שורה הופכת לפריט אחד, ללא קשר למה שהיא מכילה.
רוב היישומים מסננים שורות ריקות באופן אוטומטי כדי למנוע רשומות ריקות בתוצאות. אם אתה צריך מחזיקי מקום, השתמש במשהו גלוי כמו:
סידור יוצר סדר צפוי על בסיס כללים (A בא לפני B, 1 בא לפני 2). אותו קלט תמיד מייצר אותו פלט.
ערבוב יוצר סדר בלתי צפוי על בסיס אקראיות. אותו קלט מייצר פלט שונה בכל פעם.
השתמש בסידור כשאתה צריך ארגון. השתמש בערבוב כשאתה צריך הוגנות או גיוון.
כן - jedust בחר את טקסט הפלט והעתק (Ctrl+C ב-Windows/Linux, Cmd+C ב-Mac). התוצאות הן טקסט פשוט, אז תוכל להדביק אותן בכל מקום: גיליונות אלקטרוניים, מסמכים, דואר אלקטרוני, כלי תכנון.
מהירות: ערבוב דיגיטלי לוקח 0.05 שניות. ערבוב ידני (כתיבת שמות על פתקים, הכנסתם לכובע, ניעור, שליפה) לוקח 5+ דקות.
הוגנות: בני אדם גרועים באקראיות. אנחנו מעדיפים לא מודעים דפוסים מסוימים. אלגוריתם פישר-יאטס מוכח מתמטית כבלתי מוטה.
שקיפות: צלם מסך את התוצאות לתיעוד. בשיטות ידניות, תמיד יש מישהו החושד שאתה "סידרת" את הבחירה.
בכלל לא. אלגוריתם פישר-יאטס מבטיח הפצה אקראית אחידה ללא קשר לאופן הזנת הפריטים. הקלד אותם אלפביתית, אלפביתית הפוכה, או לגמרי אקראית - הפלט המעורבב יש לו אותן תכונות סטטיסטיות.
נקה את הקלט: פריט אחד בכל שורה, ללא שורות ריקות נוספות. ככל שהקלט שלך יהיה נקי יותר, התפוקה תהיה נקייה יותר.
החלט לגבי כפילויות: רוצה ש-"שרה" תופיע פעמיים? השאר כפילויות. רוצה כל שם פעם אחת? הסר כפילויות לפני הערבוב.
השתמש בשמות עקביים: אם אתה מציג רשימת סטודנטים, אל תערבב "ג'ון סמית'", "ג' דואה", ו-"רודריגז, מריה". בחר פורמט אחד והישאר איתו.
שמור תוצאות מיד אם הן חשובות. צלם צילום מסך, הדבק למסמך, או כל דבר אחר - פשוט תעד אותן. אי אפשר להוכיח הוגנות מאוחר יותר אם לא תיעדת את התוצאה.
הסבר את השיטה למעורבים. אמור "השתמשתי במערבל אקראי שמיישם את אלגוריתם פישר-יאטס" במקום רק "ערבבתי אקראית." שקיפות בונה אמון.
ערבב מחדש אם משהו נראה לא בסדר. אם תערבב 50 שמות וכל הנשים יסיימו בתחתית, זה סטטיסטית אפשרי אבל חברתית לא נוח. ערבב שוב - אקראיות לא אכפת לה.
דפדפנים מודרניים עובדים הכי טוב: כרום, פיירפוקס, ספארי ואדג' יש להם יצירת מספרים אקראיים מעולה. אם אתה על אינטרנט אקספלורר 9, שקול לשדרג.
רשימות גדולות (1000+ פריטים) עובדות טוב על כל מחשב מהעשור האחרון. אם אתה מערבב 50,000 פריטים על נטבוק משנת 2010, אולי תמתין שנייה-שתיים. זהו.
בין אם אתם מקצים מצגות בכיתה, מארגנים טורניר, או פשוט מנסים להחליט מה לצפות הערב, הערבוב אקראי של רשימות מסיר את ההטיה מהבחירה. זה מהיר, הוגן מבחינה מתמטית, וחינם לשימוש לחלוטין.
ללא הרשמה, ללא מעקב, ללא אחסון נתונים—רק ערבוב טהור המופעל על ידי אלגוריתם פישר-יטס, שהיה תקן הזהב מאז 1964. הזינו את הפריטים שלכם למעלה וראו את התוצאות תוך מילישניות.
מושלם עבור: מורים הבוחרים תלמידים בצורה הוגנת, מארגני טורנירים היוצרים סוגריים, צוותים המקצים משימות, משפחות המקבלות החלטות, או כל מי שזקוק לערבוב אקראי ללא הטרחה של שיטות ידניות.
גלה עוד כלים שעשויים להיות שימושיים עבור זרימת העבודה שלך