java随机数字,java随机数字不重复

发布时间:2023-01-09

本文目录一览:

  1. java如何产生1-8的整数随机数?
  2. java随机数指定的范围怎么做
  3. 如何在java中产生随机数?
  4. 在java中产生随机数
  5. java 生成随机整数
  6. 如何写java产生一个随机8位的数

java如何产生1-8的整数随机数?

(int)(Math.random() * 8) + 1

或者

Random r = new Random(100);
System.out.println(r.nextInt(8) + 1);

Java产生随机数的两种方式:

  1. 通过 Math.random() 方法返回一个0到1之间的 double 值。
  2. 通过 Random 类来产生一个随机数,这个是专业的 Random 工具类,功能强大。

Math.random() 方法

Math.random() 方法是 Java 的一个静态方法,返回一个0到1之间,前闭后开区间的 double 值。

  • (int)(Math.random() * 10) 返回0到9的随机整数。
  • (int)(Math.random() * n) 返回0到n的随机整数。
  • (int)(Math.random() * 100) + 1 返回1到100之间的随机整数。

Random 类

Random 类是 Java 的 util 包中的一个类。

Random 类使用说明

Random 类使用的根本策略是分带种子和不带种子的 Random 的实例。 通俗说,两者的区别是:

  • 带种子的,每次运行生成的结果都是一样的。
  • 不带种子的,每次运行生成的都是随机的,没有规律可言。

创建不带种子的 Random 对象

Random random = new Random();

使用一个和当前系统时间对应的相对时间有关的数字作为种子数。

创建带种子的 Random 对象有两种方法:

  1. Random random = new Random(10);
    
  2. Random random = new Random();
    random.setSeed(10);
    

种子的作用是什么?

种子就是产生随机数的第一次使用值,机制是通过一个函数,将这个种子的值转化为随机数空间中的某一个点上,并且产生的随机数均匀地散布在空间中。以后产生的随机数都与前一个随机数有关。 举例:

Random r = new Random(100);
System.out.println(r.nextInt(20));

100是种子,r.nextInt(20) 中的20是随机数的上限,产生的随机数为0-20的整数,不包括20。种子数只是随机算法的起源数字,和生成的随机数字的区间没有任何关系。 初始化时100并没有起直接作用(注意:不是没有起作用)。

java随机数指定的范围怎么做

JAVA随机数指定的范围标准格式:

Random rand = new Random();
int randNum = rand.nextInt(范围);

示例:

  1. 生成0-2之间的随机数,包括2
Random rand = new Random();
int randNum = rand.nextInt(3);
  1. 生成5-26之间的随机数,包括26
Random rand = new Random();
int randNum = rand.nextInt(22) + 5;

扩展资料:

random 函数使用格式:

新建 random 类的 rand 对象:

Random rand = new Random();

设定 rand 的类型以及区间范围:

int randNum = rand.nextInt(int x) + y;

如何在java中产生随机数?

在 J2SE 里我们可以使用 Math.random() 方法来产生一个随机数,这个产生的随机数是0-1之间的一个 double,我们可以把它乘以一定的数,比如说乘以100,它就是个100以内的随机数,这个在 J2ME 中没有。 在 java.util 这个包里面提供了一个 Random 的类,我们可以新建一个 Random 的对象来产生随机数,它可以产生随机整数、随机 float、随机 double、随机 long,这个也是我们在 J2ME 的程序里经常用的一个取随机数的方法。 在我们的 System 类中有一个 currentTimeMillis() 方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是 long,我们可以拿它作为一个随机数,我们可以拿它对一些数取模,就可以把它限制在一个范围之内。

具体编程方法摘要:

  • Random():创建一个新的随机数生成器。
  • Random(long seed):使用单个 long 种子创建一个新随机数生成器。
  • protected int next(int bits):生成下一个伪随机数。
  • boolean nextBoolean():返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 boolean 值。
  • void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的字节数组中。
  • 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 种子设置此随机数生成器的种子。

在java中产生随机数

一、利用 random 方法来生成随机数

在 Java 语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用。在 Math 类中,Java 语言提供了一个叫做 random 的方法。通过这个方法可以让系统产生随机数。不过默认情况下,其产生的随机数范围比较小,为大于等于0到小于1的 double 型随机数。虽然其随机数产生的范围比较小,不能够满足日常的需求。如日常工作中可能需要产生整数的随机数。其实,只要对这个方法进行一些灵活的处理,就可以获取任意范围的随机数。 如我们可以先通过 random 方法生成一个随机数,然后将结果乘以10。此时产生的随机数字即为大于等于0小于10的数字。然后再利用 Int 方法进行转换(它会去掉小数后面的数字,即只获取整数部分,不是四舍五入)。最后即可获取一个0到9的整数型随机数字。其实现方法很简单,就是对原有的 random 方法按照如下的格式进行变型:

(int)(Math.random() * 10)

其实我们还可以对这个方法进行扩展,让其产生任意范围内的随机数。只需要将这个10换成 n 即可,如改为:

(int)(Math.random() * n)

此时应用程序就会产生一个大于等于0小于 n 之间的随机数。如将 n 设置为5,那么其就会产生一个0到5之间的整数型的随机数。如果将这个写成一个带参数的方法,那么只要用户输入需要生成随机数的最大值,就可以让这个方法来生成制定范围的随机数。 有时候程序员可能需要生成一个指定范围内的随机偶数或者奇数。此时是否可以通过这个方法来实现?答案是肯定的。如现在程序需要生成一个1-100范围内的偶数。此时该如何实现?首先,需要生成一个0到99之内的随机数(至于这里为什么是99,大家耐心看下去就知道原因了)。要实现这个需求,很简单吧,只要通过如下语句就可以实现:

i = 1 + (int)(Math.random() * 100)

其中 (int)(Math.random() * 99) 产生0到99的整数型随机数。然后再加上1就是产生1到100之间的随机整数。然后将产生的随机数赋值给变量 i。但是此时其产生的随机数既有偶数,又有奇数。而现在程序员需要的是一个随机的偶数。那么我们可以在后面加上一个 if 判断语句。将这个随机数除以2,如果没有余数的话(或者余数为0)则表明这个随机数是偶数,直接返回即可。如果其返回的余数不为零,那么就表明其是奇数,我们只要加上1就变为了偶数,返回即可。 注意,在上面的随机数生成中,笔者采用的范围是0到99,然后再加上1让其变为1到100的随机数。最后的结果就是生成1到100之间的随机偶数。其实,如果要范围随机奇数的话,只需要对上面的语句进行稍微的修改即可。

java 生成随机整数

方法一代码:

import java.util.Random;
public class Test {
    public static void main(String[] args){
        Random rand = new Random();
        for(int i = 0; i < 10; i++) {
            System.out.println(rand.nextInt(100) + 1);
        }
    }
}

方法二代码:

package edu.sjtu.erplab.io;
import java.util.Random;
public class RandomTest {
    public static void main(String[] args) {
        int max = 20;
        int min = 10;
        Random random = new Random();
        int s = random.nextInt(max) % (max - min + 1) + min;
        System.out.println(s);
    }
}

扩展资料:

在 Windows 下编译 Java 文件、执行:

  1. 先创建一个 txt,更改为 test.java
  2. 编写代码,为输出为 helloworld
  3. 找到 cmd,并进行打开 cmd。
  4. 编译 Java 文件,输入命令为 javac test.java
  5. 如果没有报错,查看当前目录下是否有 .class 文件产生。
  6. 执行 .class 文件,在命令输入 java test,输出为 helloworld

如何写java产生一个随机8位的数

Java 产生一个随机8位的数:

StringBuilder str = new StringBuilder(); // 定义变长字符串
Random random = new Random();
// 随机生成数字,并添加到字符串
for (int i = 0; i < 8; i++) {
    str.append(random.nextInt(10));
}
// 将字符串转换为数字并输出
int num = Integer.parseInt(str.toString());
System.out.println(num);