Random生成伪随机数

简介: Random生成伪随机数

Random类:

主要方法

返回值 方法 描述
boolean nextBoolean() 返回一个布尔型随机数
double nextDouble() 返回一个double型随机数
float nextFloat() 返回一个float型随机数
int nextInt() 返回一个int型随机数
int nextInt(int n) 返回介于[0,n)int型随机数
long nextLong() 返回一个long型随机数
void setSeed(long newseed) 将newseed指定的值设为种子

案列:

生成[100,200]区间的随机数

分析:

以nextInt(int n)方法为例,可以生成任意区间的随机数,比如生成[100,到200]内的随机数,由于区间是[0,n),故可以选n=101,再加100,即nextInt(101)+100;由于Random不是真正的随机,也叫伪随机,我们可以设置一个时间种子。

代码如下:

public static void main(String[] args) {
        // 创建一个Random对象
        Random random = new Random();
        // 把当前时间设置为种子
        random.setSeed(System.currentTimeMillis());
        // 生成100个[100,200]的随机数
        for (int i = 0; i < 100; i++) {
            int num = random.nextInt(101)+100;
            System.out.println(num);
        }
    }

扩展:

根据生成随机数,完成猜数字小游戏

代码实现

public class Test2 {
    public static void main(String[] args) {
        // 创建一个数组
        int[] a=new int[50];
        // 创建一个Random对象生成随机数
        Random random =new Random();
        // 获取数组长度
        int length = a.length;
        // 循坏给数组赋值
        for (int i = 0; i < length; i++) {
            a[i]=random.nextInt(50);
        }
        // 创建Scanner对象,键盘输入
        Scanner input = new Scanner(System.in);
        System.out.println("请输入50以内的数:");
        int num = input.nextInt();
        boolean flag = false;
        for (int i:a
             ) {
            if(num==i){
                flag=true;
                break;
            }
        }
        if (flag) {
            System.out.println("恭喜你,猜对了");
        }else{
            System.out.println("抱歉,你猜错了");
        }
    }
}


目录
相关文章
|
8月前
Random随机数的使用
Random随机数的使用
46 0
|
2月前
|
存储 算法 程序员
【C/C++ 随机数】深入探索C++随机数生成,random 模块的应用
【C/C++ 随机数】深入探索C++随机数生成,random 模块的应用
67 0
|
数据安全/隐私保护
Random快速产生相同随机数的原因及解决方案
老生常谈,还是那三句话: 学历代表你的过去,能力代表你的现在,学习代表你的将来 十年河东,十年河西,莫欺少年穷 学无止境,精益求精 问题描述:很多时候我们可能需要在极短的时间内生成大量的随机数,但是你可能会发现生成了很多重复的随机数。
1804 0
|
人工智能 C语言 机器学习/深度学习