Random随机数类

本文介绍了Java中的Random类,用于生成伪随机数。Random类提供了多种方法生成不同类型的随机数值,如nextBoolean(), nextDouble(), nextFloat(), nextInt()等。此外,文章还给出了生成10个100以内随机数的示例,演示了如何在实际应用中使用Random类。" 85019925,8173984,VMware中安装CentOS图形化界面步骤详解,"['VMware', '虚拟机技术', 'Linux系统', 'CentOS', '桌面环境']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Random随机数类
1、简介

Random随机数类是一个非常简单和实用类,用于生成伪随机数,在一些游戏获得某些应用中都会大量使用到随机数,构造方法有两个,分别是:
Random() 创建一个新的随机数生成器。
Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。
如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列,所以一般我们在一段程序中使用一个Random示例,或者为每个Random示例使用不同的种子。
我们在讲解Math类的时候也讲过一个随机方法random(),这个方法事实上也就是使用Random类实现的。事实上使用Math.random()可能还更容易点。

2、随机数的常用方法:
protected int next(int bits)
生成下一个伪随机数。
boolean nextBoolean()
返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。
void nextBytes(byte[] bytes)
生成随机字节并将其置于用户提供的 byte 数组中。
double nextDouble()
返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。
float nextFloat()
返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。
double nextGaussian()
返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。
int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n)
返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
long nextLong()
返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
void setSeed(long seed)
使用单个 long 种子设置此随机数生成器的种子。

二、示例
生成10个100以内的随机数,代码如下:

public  class Bac{
	 public static void main(String[] args) {
        // System.out.println(Math.random());//<1
        // 随机打印 1 -- 10
        Random random = new Random(System.currentTimeMillis());
        for (int i = 0; i < 10; i++) {
            System.out.println(random.nextInt(100));
        }
    }
}

筛子游戏

public static void main(String[] args) {
        //
        Scanner scanner = new Scanner(System.in);
        System.out.println("买大还是小:");
        String input = scanner.nextLine();

        // 随机生成三个数 1- 6
        Random random = new Random(System.currentTimeMillis());// 以当前时间作为种子
        int num1 = random.nextInt(6) + 1;
        int num2 = random.nextInt(6) + 1;
        int num3 = random.nextInt(6) + 1;

        // 测试:
        System.out.println(num1 + ":" + num2 + ":" + num3);

        // 判定
        String result;
        if (num1 == num2 && num1 == num3) {
            System.out.println("豹子");
            result = "豹子";
        } else if (num1 + num2 + num3 > 9) {
            System.out.println("大");
            result = "大";
        } else {
            System.out.println("小");
            result = "小";
        }

        // 赢了吗?
        if (input.equals(result)) {
            System.out.println("赢了");
        } else {
            System.out.println("输了");
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值