【发布时间】:2013-03-03 06:45:12
【问题描述】:
最适合我的问题的例子是 Lottery,但它与 Lottery 略有不同,但想法相似。我的程序正在从存储先前生成的数字的数据库中获取数据。数字格式如下:
...
5, 10, 11
...
3 随机数字。现在表格最多可容纳 10,000 个以前生成的数字,表格格式如下:
UniqueID (autoincrement), Number1, Number2, Number3, DateOfGeneration
我需要什么样的算法,或者推荐一本书来帮助我提出算法。我不是要求你为我编写代码,我只是要求一个教程、书籍或网站,以便我自己阅读和弄清楚。
我需要计算最有可能出现的下一个组合。意思是说,在 10,000 个先前生成的组合中,组合 3、5、19 出现 350 倍于该组合接下来出现的概率时间是:
350/10000 = 0.035 or 3.5%
我会将这个 0.035 存储在具有以下结构的数组中:
$arrayOfCombinations[combinationisthekey] = probability
示例:
$arrayOfCombinations['3,5,19'] = 0.035
然后运行某种算法,从这个数组中随机选择最有可能出现的组合,因此组合 3,5,19 将有 0.035 的机会被选中。
我知道如何进入包含所有组合及其概率的数组的步骤。我需要能够从数组中随机选择的算法。
我是否需要考虑生成数字的日期以使其更准确?它是否必须增加/减少概率?这些我需要但不知道在哪里寻找的因素。
感谢任何建议或链接/教程,非常感谢。
再说一遍,我不是要你花时间为我写代码。我会自己写,只是需要一些教程。
编辑:(阅读本文的要点)
我主要寻找的是:我需要记住什么样的因素可以增加/减少组合的概率。例如生成数字的日期,3 个数字是偶数还是奇数等......当我得到所有这些因素时,哪种算法最好(如果有的话)插入这些数据并获得准确的结果
【问题讨论】:
-
如果我理解你的话,要搜索的短语是“加权随机选择”或“加权随机选择”。根据您使用的语言,如果您添加语言名称,您可能会在前几次点击中找到实现。不过,我并不完全确定我是否在关注你,因为“从这个数组中随机选择最有可能出现的组合”与在 3.5% 的时间内返回“3,5,19”不同.
-
我是否有权:对于 Number1/Number2/Number3 的每个唯一组合,您需要行数除以总行数并以百分比表示。
-
@DSM 我知道加权随机选择,但我正在寻找一个特定的算法,我会自己实现它我不使用其他代码。想知道是否可以将生成日期添加为可以增加/减少概率的因素之一
-
@PieterGeerkens 是的,但那部分我自己知道怎么做,我需要一些东西来增加/减少基于日期或基于奇数/偶数等的组合出现的概率。 . 简而言之,我需要知道如何考虑多个因素并将其插入某个计算器,该计算器将计算它出现的概率
-
因此,您正在为尚未完成规范的需求构建算法寻求帮助。这一次我会过去的;当你决定你想要什么后回电。
标签: algorithm math statistics probability