Java语法综合开发案例

双色球模拟综合实例

一、双色球的玩法

  1. 双色球的投注分为红球号码区和蓝球号码区。
  2. 红球号码的范围为1-33。
  3. 蓝球号码的范围为1-16。
  4. 每期从33个红球中选取6个号码,从16个蓝球中选取1个号码。
  5. 双色球玩法是竞猜开奖的6个红球号码和1个蓝球号码,顺序不限制。
  6. 具体中奖情况如下。


    屏幕快照 2019-10-25 下午4.26.02.png

二、案例分析

  1. 如何产生蓝球和红球?
  2. 如何接受用户选号?
  3. 如何验证是否中奖?
  4. 公布本期的中奖号码。

三、实现步骤

  1. 整体实现思路。
  2. 随机取值不重复算法
  3. 判断是否中奖的逻辑。
  4. 结果输出。

四、具体代码实现

// 随机取值不重复算法
 public static void method(int a[], int b[]) {
        int j = 0;
        for (int i = 0; i < b.length; i++) {
            Random random = new Random();
            j = random.nextInt(a.length - i);
            b[i] = a[j];
            // 讲a[j]换到最后
            int temp = a[j];
            a[j] = a[a.length - i - 1];
            a[a.length - i - 1] = temp;
        }
    }

完整代码可参考

https://github.com/JacksonMike/Java_ultimate/blob/master/LotteryDemo.java

算法应用的场景分析

  1. 考试系统中生成随机不重复的考试试题算法设计程序。
  2. 统计学中随机不重复抽样算法。
  3. 工作人员随机分配工作地点。
  4. 非诚勿扰随机抽取嘉宾出场顺序。
  5. 分布式系统随机分配符合要求的请求处理服务器。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容