Java模拟标准双色球

近期一直在复习Java基础知识,确实不仅补缺查漏,还能增强记忆。同事提了个需求想要模拟一下双色球的输出,顺便练习一下刚学的Collection类。反正闲的没事,就决定练习一下。

一开始我想用Set最为简便,因为其自身值的唯一性,可以很好地去除随机值重复的问题。所以,一会儿就用Set写了下面这个版本。

 

但是此方法立马被质疑,再出球的概率问题上存在纰漏。出现第1个球的概率为1/32,第2,3,4·····个球的概率都是1/32。这样是不对的,因为真实的双色球中每一个球所出现的概率是不同的,第一个球的概率为1/32,第二个球的概率为1/31,第三个球的概率为1/30···以此类推。

 

所以经过重新考虑,便写了下面这个标准版,是基于List完成的。

 

然后下面是主函数所存在的类。

 

 

其实整个都很简单,只是简单地事情让我重新构思了两次,让我觉得这件事情应该记录下来。还有就是网上的很多版本都是基于上面第一个Set版本做的,其实是不对的,功能虽然正确,但是内在的概率问题并不正确。如有错误,请您指正。

 

 

Java模拟标准双色球》有2个想法

评论已关闭。