【发布时间】:2016-05-09 07:14:05
【问题描述】:
我正在编写一个抽奖模拟程序作为一个项目。游戏的运作方式是您需要从 49 中抽取 6 个号码来获胜。
您获胜的机会是 1/13,983,816,因为这就是 49 中 6 的组合数。 demo program on Go playground 每次在循环中生成六个新数字。
每次生成一组新数字时,我都会测试它是否已经存在,如果存在,我会跳出循环。对于 13,983,816 种组合,您会认为相同的 6 个数字重复出现需要很长时间,但是在测试中它总是在 10000 次迭代之前失败。有谁知道为什么会这样?
【问题讨论】:
-
听起来您使用的是标准随机数生成器。虽然这是 PHP - 我建议查看有关 PHP.php.net/docs.php 中使用的两种随机数生成器的文章。寻找 rand 和 mt_rand。您可能还想查看stackoverflow.com/questions/4720822/…。这可能与您所询问的内容重复。
标签: arrays math random go generator