הדמיית הגרלה באקסל

הגרלה היא לא ציד אחר מזל,

זה ציד אחר לוזרים.

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

В этой статье мне хотелось бы ответить на часть этих вопросов. Благо, в Excel для решения таких задач достаточно инструментов, многие из которых, кстати, могут пригодич.

משימה 1. הסתברות לזכייה

בואו ניקח את הגרלת Stoloto הקלאסי 6 מתוך 45 כדוגמה. על פי הכללים, רק מי שניחש את כל 10 המספרים מתוך 6 מקבל פרס על (45 מיליון רובל או יותר אם יתרת קרן הפרסים הצטברה מהגרלות קודמות). אם ניחשתם 5, תקבלו 150 אלף רובל, אם 4 - 1500 רובל. , אם 3 מספרים מתוך 6, אז 150 רובל, אם 2 מספרים - תחזיר 50 רובל שהוצא על הכרטיס. נחשו רק אחד או אף אחד - קבלו רק אנדורפינים מתהליך המשחק.

ניתן לחשב בקלות את ההסתברות המתמטית לזכייה באמצעות הפונקציה הסטנדרטית NUMBERCOMB (לְשַׁלֵב), הזמין ב-Microsoft Excel למקרה כזה. פונקציה זו מחשבת את מספר השילובים של N מספרים מתוך M. אז עבור הגרלת "6 מתוך 45" שלנו זה יהיה:

=ЧИСЛКОМБ(45;6)

...שווה ל-8, המספר הכולל של כל השילובים האפשריים בהגרלה זו.

אם ברצונך לחשב את ההסתברות לזכייה חלקית (2-5 מספרים מתוך 6), תחילה תצטרך לחשב את מספר האפשרויות הללו, השווה למכפלת מספר הצירופים של מספרים מנחשים מתוך 6 במספר המספרים הבלתי מנחשים מתוך הנותרים (45-6) = 39 מספרים. לאחר מכן נחלק את המספר הכולל של כל השילובים האפשריים (8) במספר הניצחונות שהתקבלו עבור כל אפשרות - ונקבל את הסתברויות הזכייה עבור כל מקרה:

הדמיית הגרלה באקסל

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

אם כל האמור לעיל לא עצר אותך ואתה עדיין מוכן להמשיך לשחק, המשך.

משימה 2. תדירות המופע של כל מספר

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

ניקח, למשל, נתונים על כל 2020 מתוך 21 הגרלות הלוטו שהתקיימו ב-6-45 מאתר האינטרנט של מארגן שלהם Stoloto, המעוצב בצורה של טבלה "חכמה" כזו, נוחה לניתוח, עם השם תפוצת tabArchive. Розыгрыши проходят два раза в день (ב 11 утра и в 11 вечера), т.е. в этой таблице у нас полторы тысячи тиражей-строк — вполне достаточная для начала выборка для анализа:

הדמיית הגרלה באקסל

כדי לחשב את תדירות ההופעה של כל מספר, השתמש בפונקציה COUNTIF (COUNTIF) ולהוסיף לו פונקציה טקסט (טֶקסט)להוסיף אפסים וכוכביות מובילות לפני ואחרי למספרים חד ספרתיים, כך ש-COUNTIF יחפש את התרחשות של מספר בכל מקום בצירוף בעמודה B. כמו כן, לבהירות רבה יותר, נבנה תרשים לפי תוצאות ונמיין את התדרים בסדר יורד:

הדמיית הגרלה באקסל

בממוצע, כל כדור צריך ליפול 1459 משיכות * 6 כדורים / 45 מספרים = 194,53 פעמים (זה בדיוק מה שנקרא בסטטיסטיקה математическим ожиданием), но хорошо видно, чо некотрые чиса (27, 32, 11…) ыадали заметно чащ (+18%), а н н н н о о о о о ч ч ч ч ч ч ч ч ч чо-ч-чча-н-н-н-н-н-н-н-н-н-н-н-d) Соответственно, можно попробовать использовать эту информацию для стратегии выигрыша, т.е. либо савит на те шары, чо ыадаю чаще, либ н н оорот - еат аы н н н н о о н о а а,

משימה 3. אילו מספרים לא צוירו במשך זמן רב?

אסטרטגיה נוספת מבוססת על הרעיון שעם מספר גדול מספיק של תיקו, במוקדם או במאוחר כל מספר מכל האפשרויות מ-1 עד 45 אמור לנשור. אז אם מספרים מסוימים לא הופיעו בין הזוכים במשך זמן רב ("כדורים קרים"), אז זה הגיוני לנסות להמר עליהם בעתיד. 

Можно легко найти все давно не выпадавшие номера, eсли отсортировати наш архив тиражей 2020-21 יותר חשוף (התאמה). הוא יחפש מלמעלה למטה (כלומר מהריצות חדשות לישנות) כדי לחפש כל מספר ולמסור את המספר הסידורי של הריצה (מספירה מסוף השנה להתחלה) שבה המספר הזה ירד לאחרונה:

הדמיית הגרלה באקסל

Задача 4. Генератор случайных чисел

אסטרטגיית משחק נוספת מבוססת על ביטול הגורם הפסיכולוגי בעת ניחוש מספרים. כאשר שחקן בוחר מספרים על ידי ביצוע ההימור שלו, הוא עושה זאת באופן לא לגמרי רציונלי באופן לא מודע. לפי הסטטיסטיקה, למשל, מספרים מ-1 עד 31 נבחרים בתדירות גבוהה יותר ב-70% מהשאר (תאריכים מועדפים), 13 נבחר לעתים רחוקות יותר (תריסר ארור), מספרים המכילים את שבעת המזל נבחרים לעתים קרובות יותר, וכו'. אבל אנחנו משחקים נגד מכונה (תוף לוטו) שעבורה כל המספרים זהים, אז הגיוני לבחור אותם באותה חוסר משוא פנים מתמטית כדי להשוות את הסיכויים שלנו. כדי לעשות זאת, עלינו ליצור מחולל של מספרים אקראיים והכי חשוב - שאינם חוזרים על עצמם באקסל:

    הדמיית הגרלה באקסל

כדי לעשות זאת:

  1. בואו ניצור טבלה "חכמה" בשם מחולל שולחן, כאשר העמודה הראשונה תהיה המספרים שלנו מ-1 עד 45.
  2. בעמודה השנייה, הזינו את המשקל לכל מספר (נצטרך אותו קצת מאוחר יותר). אם כל המספרים שווים עבורנו באותה מידה ואנו רוצים לבחור אותם בהסתברות שווה, אזי ניתן להגדיר את המשקל שווה ל-1 בכל מקום.
  3. בעמודה השלישית אנו משתמשים בפונקציה SLCHIS (RAND), которая в Excel генерирует случайное дробное число от 0 עד 1, добавив к нему вес из предыдущего столбц. Таким образом каждый раз при пересчёте листа (нажатии на клавишу F9) תיווצר קבוצה חדשה של 45 מספרים אקראיים, תוך התחשבות במשקל של כל אחד מהם.
  4. בואו נוסיף עמודה רביעית, שבה משתמשים בפונקציה RANK (דַרגָה) вычислим ранг (позицию в топе) для каждого из чисел.

כעת נותר לבצע בחירה מששת המספרים הראשונים לפי דרגה 6 באמצעות הפונקציה יותר חשוף (התאמה):

הדמיית הגרלה באקסל

При нажатии на клавишу F9 הנוסחאות בגיליון האקסל יחושבו מחדש ובכל פעם נקבל קבוצה חדשה של 6 מספרים בתאים ירוקים. יתרה מכך, המספרים שלגביהם נקבע משקל גדול יותר בעמודה B יקבלו דירוג גבוה יותר באופן יחסי, וכך יופיעו לעתים קרובות יותר בתוצאות המדגם האקראי שלנו. אם המשקל של כל המספרים מוגדר זהה, כולם ייבחרו באותה הסתברות. כך נקבל מחולל מספרים אקראיים הוגן וחסר פניות של 6 מתוך 45, אך עם יכולת לבצע התאמות לאקראיות של החלוקה במידת הצורך.

אם נחליט לשחק בכל הגרלה לא עם אחד, אלא, למשל, עם שני כרטיסים בו זמנית, שבכל אחד מהם נבחר מספרים שאינם חוזרים על עצמם, אז נוכל פשוט להוסיף שורות נוספות מלמטה לטווח הירוק, הוספת 6, 12, 18 וכו' לדרגה. ד. בהתאמה:

הדמיית הגרלה באקסל

משימה 5. סימולטור הגרלות באקסל

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

כדי שהכל יהיה קרוב ככל האפשר למציאות, דמיינו לרגע שזה 1 בינואר 2022 ולפנינו הגרלות השנה שבהן אנחנו מתכננים לשחק. הזנתי את המספרים הנפלים האמיתיים בטבלה tablTiraži2022, הפרדת המספרים המצוירים נוספים זה מזה לטורים נפרדים לנוחות החישובים הבאים:

הדמיית הגרלה באקסל

על גיליון נפרד משחק צור ריק לדוגמנות בצורה של טבלה "חכמה" עם השם tabIgra הטופס הבא:

הדמיית הגרלה באקסל

כאן:

  • בתאים הצהובים למעלה, נגדיר עבור המאקרו את מספר ההגרלות בשנת 2022 בהן נרצה להשתתף (1-82) ואת מספר הכרטיסים שנשחק בכל הגרלה.
  • הנתונים עבור 11 העמודות הראשונות (AJ) יועתקו על ידי המאקרו מגיליון השרטוט של 2022.
  • נתונים עבור שש העמודות הבאות (KP) המאקרו ייקח מהגיליון גֵנֵרָטוֹר, שבו יישמנו מחולל מספרים אקראיים (ראה בעיה 4 למעלה).
  • בעמודה Q, אנו סופרים את מספר ההתאמות בין המספרים שנפלטו לאלו שנוצרו באמצעות הפונקציה SUMPRODUCT (SUMPRODUCT).
  • .
  • בעמודה S האחרונה, אנו מחשיבים את התוצאה הכוללת של המשחק כולו כסכום מצטבר על מנת לראות את הדינמיקה בתהליך.

וכדי להחיות את כל המבנה הזה, אנחנו צריכים מאקרו קטן. בכרטיסייה מפתחים (מפתח) לבחור צוות Visual Basic או השתמש בקיצור מקלדת אחר+F11. לאחר מכן הוסף מודול ריק חדש דרך התפריט הכנס - מודול והזן שם את הקוד הבא:

Sub Lottery() Dim iGames As Integer, iTickets As Integer, i As Long, t As Integer, b As Integer 'объявляем переменные для ссылки на листы Set wsGame = Worksheets("Иенгра") Set wsheets("") הגדר wsheets("") =Г wsArchive = Worksheets("Тиражи 2022") iGames = wsGame.Range("C1") 'количество тиражей iTickets = wsGame.Range("C2") 'количество билетов в каждом тираже i = 5 'первая строка в таблице таблИгра wsGame.Rows ("6:1048576"). מחק 'очищаем старые данные For t = 1 To iGames For b = 1 To iTickets 'копируем выигравшие номера с листа Тира2022жия 1s листа Тира1жиг 1 s листа Тира10жия 1 s 4 4 жия). (11, 1).Copy Destination:=wsGame.Cells(i, XNUMX) 'копируем и вставляем специальной вставкой значений сгенерированные номируем и вставляем специальной вставкой значений сгенерированные номират с.XNUMXG" (L.G.S.) .PasteSpecial Paste:=xlPasteValues ​​i = i + XNUMX הבא הבא הבא t סוף המשנה  

נותר להזין את הפרמטרים הראשוניים הרצויים בתאים הצהובים ולהפעיל את המאקרו מפתח - מאקרו (מפתח - מאקרו) או קיצור מקלדת אחר+F8.

הדמיית הגרלה באקסל

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

הדמיית הגרלה באקסל

השוואה בין אסטרטגיות שונות

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

הדמיית הגרלה באקסל

כאן:

  • גֵנֵרָטוֹר הוא משחק שבו בכל הגרלה אנו בוחרים מספרים אקראיים שנוצרו על ידי המחולל שלנו (באותו משקל).
  • מועדפים הוא משחק שבו בכל תיקו אנו משתמשים באותם מספרים - אלו שנפלו לרוב בתיקו במהלך השנתיים האחרונות (27, 32, 11, 14, 34, 40).
  • זרים – אותו דבר, אבל אנו משתמשים במספרים הנפתחים הנדירים ביותר (12, 18, 26, 10, 21, 6).
  • קר – בכל ההגרלות אנו משתמשים במספרים שלא נפלו במשך זמן רב (35, 5, 39, 11, 6, 29).

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

Можно также попробовать играть большим количеством билетов в каждом тираже, чтобы перекрыть большович ( а для этого несколько игроков объединяются в группу).

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

הדמיית הגרלה באקסל

משחק 10 כרטיסים בכל הגרלה עם מספרים שנוצרו באופן אקראי (באותו משקל):

הדמיית הגרלה באקסל

משחק 100 כרטיסים בכל הגרלה עם מספרים אקראיים (באותו משקל):

הדמיית הגרלה באקסל

הערות, כמו שאומרים, מיותרות - ניקוז פיקדון הוא בלתי נמנע בכל המקרים 🙂

השאירו תגובה