估计很多人都做过跟我一样的梦,那就是梦见自己买彩票中了五百万!但是,梦归梦,现实归现实。现实当中,大家都知道彩票的中奖概率很低,甚至有人直接给出了彩票的中奖概率约为两千一百四十二万分之一,可是,光看这个概率也很难对中奖的“难”有什么概念。于是,作为程序员,我通过代码的形式来告诉你,作为个人,你如果想要中彩票一等奖,究竟有多难!难道让你难以相信!
本文旨在使用代码模拟彩票中奖来体现彩票中一等奖的难度(注意是一等奖),并无它意。因为用来模拟的测试数据有限,因此测试结果仅供参考,若在阅读本文过程中产生其他联想,我深表遗憾!
在写代码之前,我需要选定一个已知的彩票规则来模拟,因此,我选取的彩票的开奖规则为:
1.前区总共35个号码,选取其中5个号码。
2.后区总共12个号码,选取其中2个号码。
3.彩票分别为每周一、周三、周六开奖(节假日不忽略)。
4.当选取的前区号码和后区号码与开奖号码一致的时候,即中得一等奖。
而我的测试规则为:
1.选取一个固定号码,作为自己的彩票号码。
2.以一周七天作为一个循环,分别在周一、周三、周六随机开奖。一直到开奖号码与固定彩票号码一致为止。
3.当中奖后,重新进行下一轮循环,固定彩票号码不变,一直到中十万次为止。
我在程序中设定,当程序每模拟到一次中奖,就会在一个文本文档中记录直至该次中奖的总人数、当前中奖耗时天数、当前中奖耗时年数。最后,我会将文档中的数据拿到Excel中进行分析。
为了不耽误工作,所以我将模拟程序放到了我自己的服务器上去执行。因为我自己的服务器配置比较差,我开始有心理准备,觉得过不了多久我就应该能够得到我想要的数据了!
但是,让我没有想到的是,这个程序在我的服务器上足足执行了有五天之久!
尽管耗时比较久,但是我还是拿到了我想要的十万条数据,并且,我在得到这些数据以后,立马就使用了Excel对数据进行了分析,下面是基于十万条数据的分析结果;
耗时总天数、总年数
可以看到,天数已经溢出了Excel可以容纳的最大数字,但是,通过总年数9773515155,我们大概可以算出来,十万次中奖所消耗的天数约为3567333031575天!
总耗时最小、最大天数
此时,我们就看到了一位“幸运儿”,只使用了91天就中得了一等奖,但是,这十万条数据中还有一个“倒霉蛋”,总共耗时459473442天才中得一等奖。
总耗时最小、最大年数
这里的最小年数和最大年数是基于上面的天数算出来的,所以结果就是耗时最短为0年,最长的为1258831年,按照人均100岁来算的话,想要中奖,这个“倒霉蛋”至少需要活12588辈子!
总耗时平均天数、年数
通过这十万条数据,我们算出来中奖的平均天数为35673869.41天,平均年数为42869年,也就是说,大多数人想要中一等奖,需要活至少420辈子!
为了给大家一点希望,我算出了这十万次中奖耗时最短的前30个数据。
可以看到,前30名数据中,出现了三名耗时1年左右的,最大耗时为19年。
代码使用CSharp编写,看不懂的可以忽略,看得懂的同行可以给点意见。
彩票是公益性质的,为了支持公益事业,平时花点小钱买买无可厚非。但是,千万不要以赌的心态去买彩票,此举不光得不到自己想要的结果,还侮辱了公益事业。