18、Random类简介

Random类概述

Random类在java.util包下,使用这个类可以生成随机数

package com.sutaoyu.usually_class;

import java.util.Random;

public class String_test15 {
    public static void main(String[] args) {
        Random r = new Random();
        
        //生成int类型的随机数
        int ran = r.nextInt(11);//生成0-10之间的随机数
        System.out.println(ran);//0
        
        //循环生成5个随机数
        for(int i = 0;i<5;i++) {
            System.out.println(r.nextInt(11));//8 2 1 1 2
        }
    }
}

练习:

完成一个彩票机选号码生成器,这里以双色球为例,双色球每注中奖号码由6个不同的红色球号码和1个蓝色球号码组成。红色球号码从1~33中选择;蓝色球号码从1~16中选择。

分析:随机的从1~33中选择6个不同的数字,需要去重,随机从1~16中选择1个数字,可以组成一注中奖号码。

package com.monkey1024.random;

import java.util.Arrays;
import java.util.Random;

public class ColorBall {

    public static void main(String[] args) {

        //初始化双色球号码
        int[] balls = new int[33];
        for(int i=0; i<balls.length; i++){
            balls[i] = i + 1;
        }

        //创建数组用来标记红球是否重复
        boolean[] isUsed = new boolean[33];

        //创建数组用来存放6个红球
        int[] result = new int[6];
        //初始化数组下标
        int length = 0;

        Random r = new Random();
        while(true){
            //生成0~32的随机数,将随机数作为数组下标,取得红球
            int red = r.nextInt(33);
            //判断生成的红球是否重复
            if(isUsed[red] == true){
                continue;
            }

            //将选中的红球存放到结果中
            result[length++] = balls[red];
            //如果等于6则说明已经生成了6个红球了,跳出循环
            if(length == 6){
                break;
            }

            //将生成的红球所对应的数组下标标记为true
            isUsed[red] = true;

        }
        //将数组排序
        Arrays.sort(result);
        //生成0~15的随机数,将随机数作为数组下标,取得蓝球
        int blue = r.nextInt(16);

        //将红球打印
        System.out.print("红球:");
        for(int i=0; i<result.length; i++){
            if(i == result.length - 1){
                System.out.print(result[i]);
            }else{
                System.out.print(result[i] + ",");
            }
        }

        //将蓝球打印
        System.out.print(" 蓝球:" + balls[blue]);
    }

}

 

posted @ 2018-12-15 16:42  追风的小蚂蚁  阅读(226)  评论(0编辑  收藏  举报