Excel中的彩票模拟

彩票不是为了运气,

这是对失败者的追捕。

人们以令人羡慕的规律性(最近更频繁)写信给我寻求与彩票相关的各种计算方面的帮助。 有人想在 Excel 中实现他们选择中奖号码的秘密算法,有人想在过去抽奖中发现的号码中找到模式,有人想在不诚实的游戏中抓住彩票的组织者。

В этой статье мне хотелось бы ответить на часть этих вопросов。 бpEl至excel至

任务 1. 获胜的概率

让我们以经典的 Stoloto 6 out of 45 彩票为例。 根据规则,只有在 10 个号码中全部猜中 6 个号码的人才能获得超级奖金(如果奖金余额从之前的抽奖中累积,则为 45 万卢布或更多)。 如果您猜到 5,您将收到 150 卢布,如果 4 – 1500 卢布。 , 如果 3 个号码中有 6 个号码,则 150 卢布,如果 2 个号码 - 您将退还 50 卢布在机票上的花费。 只猜一个或一个都没有——只从游戏过程中获取内啡肽。

可以使用标准函数轻松计算获胜的数学概率 数字梳 (结合),在这种情况下,它在 Microsoft Excel 中可用。 此函数计算 M 中 N 个数字的组合数。因此,对于我们的“6 选 45”彩票,它将是:

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

…等于 8,即该彩票中所有可能组合的总数。

如果您想计算部分获胜的概率(2 个数字中的 5-6 个数字),那么您首先必须计算此类选项的数量,它等于所猜数字组合数的乘积6 由剩余 (45-6) 中未猜到的数字的数量 = 39 个数字。 然后我们将所有可能组合的总数(8)除以每个选项的获胜次数——我们得到每种情况的获胜概率:

Excel中的彩票模拟

顺便说一句,例如,在我国死于飞机失事的概率估计约为百万分之一。 在轮盘赌中获胜的概率是 1 到 1。

如果以上所有内容都没有阻止您并且您仍然准备好继续玩,请继续。

任务 2. 每个数字的出现频率

首先,让我们确定某些数字以什么频率出现。 在理想的彩票中,给定足够大的分析时间间隔,所有球都应该有相同的概率出现在获胜样本中。 实际上,彩票鼓的设计特征和球的重量形状可能会扭曲这幅图,并且对于某些球来说,掉出的概率可能比其他球更高/更低。 让我们在实践中检验这个假设。

让我们以组织者 Stoloto 的网站上 2020 年 21 月至 6 日发生的 45 次抽奖中的所有数据为例,以这种“智能”表的形式设计,便于分析,名称为 标签存档流通. Розыгрыши проходят два раза в день (в 11 утра и в 11 вечера), т.е. ээйбL至thout

Excel中的彩票模拟

要计算每个数字的出现频率,请使用函数 COUNTIF (县) 并为其添加一个功能 文字 (文本)在单个数字之前和之后添加前导零和星号,以便 COUNTIF 在 B 列中的组合中的任何位置查找数字的出现。此外,为了更清楚起见,我们将按结果构建图表并对频率进行排序按降序排列:

Excel中的彩票模拟

平均而言,任何球应该掉落 1459 次抽奖 * 6 个球 / 45 个数字 = 194,53 次(这正是统计中所说的 математическиможиданием),хх讯,чччччч。 Соответственно, можно попробовать использовать эту информацию для стратегии выигрыша, т.е. ×Qбвшшшш,чч氨

任务 3. 哪些数字很久没有抽到?

另一种策略是基于这样的想法,即如果抽签次数足够多,迟早会从 1 到 45 的所有可用号码中淘汰每个号码。 因此,如果某些数字很长时间没有出现在中奖者中(“冷球”),那么将来尝试对它们下注是合乎逻辑的。 

limoж冲动 更多曝光 (匹配). 它将从上到下(即从新运行到旧运行)搜索每个数字并给出最后丢弃该数字的运行的序列号(从年末到年初):

Excel中的彩票模拟

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

另一种游戏策略是基于消除猜数字时的心理因素。 当玩家通过下注选择数字时,他下意识地这样做并不完全是理性的。 据统计,例如,选择 1 到 31 的数字比其他数字高 70%(最喜欢的日期),选择 13 的频率较低(该死的十几个),包含“幸运”七的数字被选择的频率更高,等等。但是我们正在与一台所有数字都相同的机器(彩票鼓)进行比赛,因此以相同的数学公正性选择它们以使我们的机会均等是有意义的。 为此,我们需要在 Excel 中创建一个随机数且最重要的是非重复数字的生成器:

    Excel中的彩票模拟

去做这个:

  1. 让我们创建一个名为“智能”的表 表生成器,其中第一列将是我们从 1 到 45 的数字。
  2. 在第二列中,输入每个数字的权重(稍后我们将需要它)。 如果所有数字对我们都具有同等价值,并且我们希望以相同的概率选择它们,那么可以将权重设置为在任何地方都等于 1。
  3. 在第三列我们使用函数 信息系统 (兰德), которая в Excel генерирует случайное дробное число от 0 до 1, добавив к нему вес из предыдущего столца。 Таким образом каждый раз при пересчёте листа (нажатии на клавишу F9) 将生成一组新的 45 个随机数,并考虑每个随机数的权重。
  4. 让我们添加第四列,其中使用函数 (秩) вычислим ранг (позицию в топе) для каждого из чисел。

现在仍然需要使用函数按等级 6 选择前六个数字 更多曝光 (匹配):

Excel中的彩票模拟

При нажатии на клавишу F9 Excel 工作表上的公式将重新计算,每次我们都会在绿色单元格中获得一组新的 6 个数字。 此外,在 B 列中设置较大权重的数字将获得相应较高的排名,因此在我们的随机样本结果中出现的频率更高。 如果所有数字的权重都设置为相同,那么所有数字都将以相同的概率被选中。 通过这种方式,我们得到了一个公平且无偏的随机数生成器,它是 6 个中的 45 个,但在必要时能够对分布的随机性进行调整。

如果我们决定在每次抽奖中不使用一张,而是例如一次使用两张彩票,在每张彩票中我们将选择不重复的号码,那么我们可以简单地从底部添加额外的线到绿色范围,将 6、12、18 等添加到排名。 d。 分别:

Excel中的彩票模拟

任务 5. Excel 中的彩票模拟器

作为整个主题的典范,让我们在 Excel 中创建一个成熟的彩票模拟器,您可以在其中尝试任何策略并比较结果(在优化理论中,类似的东西也称为蒙特卡洛方法,但它会更简单为我们)。

为了让一切尽可能接近现实,想象一下现在是 1 年 2022 月 XNUMX 日,我们将迎来今年的抽签,我们计划在其中进行比赛。 我在表格中输入了真实的掉线数字 表Tirazi2022,为方便后续计算,将额外抽取的数字相互分隔成单独的列:

Excel中的彩票模拟

在另一张纸上 游戏 以“智能”表的形式为建模创建一个空白,名称为 制表符 以下表格:

Excel中的彩票模拟

这里:

  • 在上面的黄色单元格中,我们将为宏设置我们想要参加的 2022 年抽奖次数(1-82)以及我们在每次抽奖中玩的彩票数量。
  • 前 11 列 (AJ) 的数据将由宏从 2022 绘图表中复制。
  • 宏将从工作表中获取的接下来六列 (KP) 的数据 发生器,我们已经实现了一个随机数生成器(参见上面的问题 4)。
  • 在 Q 列中,我们计算丢弃的数字和使用函数生成的数字之间的匹配数 SUMPRODUCT (总和).
  • В столбце R вычисляем финансовый результат (если не выиграли, то минус 50 рублей за билет, если выиграли, то приз — 50 р.за билет
  • 在最后一列 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 wsNumbers = Worksheets("Генератор") Set wsArchive = Worksheets("Тиражи 2022") iGames = wsGame.Range("C1") 'количество тиражей iTickets = wsGame.Range("C2") 'количество билетов в каждом тираже i = 5 'первая строка в таблице таблИгра wsGame.Rows (“ 6:1048576”)。 (1,1).copy目的地:= wsgame.cells(i,2022)'车万.PasteSpecial Paste:=xlPasteValues i = i + 1 Next b Next t End Sub  

在黄色单元格中输入所需的初始参数并运行宏 开发人员 – 宏 (开发者——宏) 或键盘快捷键 其他+F8.

Excel中的彩票模拟

为清楚起见,您还可以为最后一列构建一个带有累积总数的图表,以反映游戏期间资金余额的变化:

Excel中的彩票模拟

不同策略的比较

现在,使用创建的模拟器,您可以在 2022 年的真实抽奖中测试任何游戏策略,并查看它会带来的结果。 如果你在每次抽奖中打 1 张彩票,那么“李子”的整体画面如下所示:

Excel中的彩票模拟

这里:

  • 发生器 是一个游戏,在每次抽奖中,我们选择由我们的生成器创建的随机数(具有相同的权重)。
  • 收藏 是一个游戏,在每次抽签中我们使用相同的数字——那些在过去两年中最常被淘汰的数字(27、32、11、14、34、40)。
  • 外人 – 相同,但我们使用最稀有的下拉数字(12、18、26、10、21、6)。
  • – 在所有抽奖中,我们使用很长时间没有出现过的数字(35、5、39、11、6、29)。

如您所见,没有大的区别,但随机数生成器的表现比其他“策略”要好一些。

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

每次开奖时使用一张随机生成的号码(重量相同)的彩票:

Excel中的彩票模拟

在每次抽奖中使用随机生成的数字玩 10 张彩票(重量相同):

Excel中的彩票模拟

每次抽奖用随机数玩 100 张彩票(权重相同):

Excel中的彩票模拟

正如他们所说,评论是多余的——在所有情况下,存款流失都是不可避免的🙂

发表评论