超级计算机可以算大乐透吗?
这个,我只能说理论上可行,但实际上根本不行 先说说原理吧:乐透型彩票(包括体育彩票的篮球、足球游戏)本质上是一个离散随机问题,因为每个号码被选中的概率是固定的且小于1,所以这个问题可以用随机数来模拟——只要时间足够长,任何概率都可以做到接近实际值。也就是说,用超级计算机模拟几亿次甚至更多次,每次生成一组新的数字作为开奖结果,这些结果出现的可能性都是存在的;然后统计每组结果的奖号数量并做出频率分布图,这样就能得到所有可能出现的结果以及每种结果出现的可能性,再用大数定律进行加权计算,最终就可以得到这个方案的中奖概率了。
不过这里有个问题:用什么算法来产生这组随机数呢?如果这个问题的概率计算能够用简单的数学公式表示出来(类似于正态分布或者二项分布那样)的话那就好了,直接用计算机生成以这些公式为基础的随机数就可以了,问题是这些随机数的生成必须满足一定的条件才能确保结果是独立的(否则算法会失败),而这些条件一般很难满足。如果没有合适的条件,就得用其它方法来实现随机,例如利用计算机内的时钟中断来产生一个“伪”随机序列然后再做处理才能得到满足要求的随机数。这种通过非确定性运算产生的随机数是基于概率分布的,但它们的发生是有条件的(由具体的算法决定),因此不是真·随机数,但这种假·随机数比真正的随机数更容易被计算机执行。
此外还有另一种情况,就是有些情况下随机数无法唯一确定,比如有两个或更多的随机数都符合某个概率函数,这种情况下问题的解本身就是不确定的,计算出的概率也是个范围而不是具体某值。这种情况在现实世界中也是存在的,就像抛硬币,连续多次都是正面朝上或反面朝上也是有可能的,这时我们就不能肯定地断定到底是正面朝上的概率高还是反面朝上的概率高,当然也不能说前者比后者高或是后者比前者高,它们只能是最可能的几个结果之一。这类问题就没什么好说的了,计算出各种可能的结果及其出现的概率后直接列出来就行了。