多语言展示
当前在线:1147今日阅读:117今日分享:28

如何用java模拟世界杯抽签?

2018世界杯抽签将在12月1号进行,学习java,是不是也可以来做一个模拟抽签的小程序呢?抽签规则:1 东道主自动进入A组,并占据A1位置,其他七个种子队将按照从B到H的顺序,被抽入对应组的第一位。2 确定每个小组的种子队后,再按顺序抽出第二档球队进入八个小组,然后是第三档球队,最后则是第四档球队。3 后三档球队抽签时,首先抽取所属小组,再确定该队在小组的位置(2、3、4)。4 整个抽签过程都将采取同洲回避原则,即同一大洲球队不能同组,欧洲除外,但每组最多不能超过两支欧洲球队。其中第三步中确定小组的位置,这个其实可以在抽签分组出来后再来分配位置,我们这里就先不做这一步,只把小组分好。
工具/原料

java编程IDE Eclipse等

方法/步骤
1

定义入围世界杯球队信息。球队包括球队名以及所属大洲。

2

根据入围球队信息(队名,所属大洲,分档),初始化球队类。我们定义了几个常量用来更好的标识所属大洲属性。

3

按照抽签规则,第一档球队除了东道主固定在A组,其他7支队伍则随机分配。第二档、第三档、第四档的球队则还需要满足抽签规则,每个小组欧洲球队最多两支,其他大洲球队最多一支。所以,先抽取第一档球队。

4

分别抽取后面三档球队,每次抽签时,先查找该档剩下的每支球队可被分配的小组。

5

如果有球队的可被分配的小组只有1个,那么该队就必须要分配到该小组。

6

如果没有唯一确定的小组,则随机抽签。先随机抽取球队,再从该球队可分配的小组中随机抽取小组,这样就把球队分配到组里。

7

最后再打印抽签结果。

8

抽签其实是个很复杂的过程,因为有随机的因素,所以我们可以这么操作。但是抽签还是会遇到一些问题,比如:有两个队都可以分配到2,3小组,有另外一个队可以分配到2,3,4小组,那么这个队其实只可以分配到第4小组。还有因为我们分配规则导致剩下几个队的都只能分配到一个小组的情况出现等。这些异常情况导致算法其实比较复杂,但是因为随机抽签的原因,我们可以简单的重新抽签就可以了,毕竟异常情况出现还是比较少的。

推荐信息