Random类

作者: 张轻舟 | 来源:发表于2019-05-20 20:27 被阅读0次

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

    import java.util.Random;
    
    public class RandomTest01 {
    
        public static void main(String[] args) {
    
            Random r = new Random();
            //生成int类型的随机数
            int ran = r.nextInt(101); //[0-100]之间的随机数
            System.out.println(ran);
    
            //循环生成5个随机数
            for(int i=0;i<5;i++){
                System.out.println(r.nextInt(101));
            }
    
        }
    
    }
    

    练习

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

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

    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]);
        }
    
    }
    

    相关文章

      网友评论

          本文标题:Random类

          本文链接:https://www.haomeiwen.com/subject/eomlzqtx.html