Java中的随机整数[重复]

Posted

技术标签:

【中文标题】Java中的随机整数[重复]【英文标题】:Random integer in Java [duplicate] 【发布时间】:2014-12-06 13:53:34 【问题描述】:

这是我得到的问题。 输入 2 个整数(x 和 y)并打印 x 和 y 之间的随机整数。 我想知道为什么我的代码不打印随机整数。 我仍然是java的初学者,任何帮助都会很好。谢谢。

import java.util.*;
class Random_integer 
    public static void main(String[] args) 
        Random randomNum = new Random();
        Scanner input = new Scanner(System.in);
        int integer1, integer2;
        System.out.print("Enter two integer : \n ");
        System.out.print("\n Integer 1 : ");
        integer1 = input.nextInt();
        System.out.print("\n Integer 2 :");
        integer2 = input.nextInt();
        randomNum = new Random(integer1, integer2);
        System.out.print("\n Random number : " +randomNum);
    

【问题讨论】:

randomNum 是一个 Random 对象(随机数生成器)。您需要在 Random 对象上调用 方法 以生成整数。 【参考方案1】:

试试下面的代码。 randomize(int x, int y) 中的参数,其中x 是最小数量 y 是最大数量。

import java.util.*;

class Random_integer

    public static void main(String[] args)
        int integer1, integer2;
        Scanner input = new Scanner(System.in); 
        System.out.print("Enter two integer : \n ");
        System.out.print("\n Integer 1 : ");
        integer1 = input.nextInt();
        System.out.print("\n Integer 2 :");
        integer2 = input.nextInt();

        Random_integer ri = new Random_integer();
        ri.randomize(integer1,integer2);
    

    public void randomize (int x,int y) 
        Random randomNum = new Random();
        int rand = randomNum.nextInt((y-x)+1)+x;
        System.out.print("\n Random number : " +rand);
    

【讨论】:

【参考方案2】:

您错误地调用了Random 构造函数,Random(integer1, integer2) 将无法编译,因为Random 没有带有两个整数参数的构造函数。

如果你想在一个范围内创建一个随机数,使用这个:

int rand = randomNum.nextInt((integer2 - integer1) + 1) + integer1

【讨论】:

【参考方案3】:

java.util.Random 是一个用于生成随机数的类。构造函数不会将最小值和最大值作为参数,但 nextInt() 方法可以满足您的要求:

randomNum = new Random();
System.out.println("Random number: " + random.nextInt(integer1, integer2));

【讨论】:

Random(long seed) 广泛用于可重复测试等。 @chrylis 我在哪里使用Random(long seed) 说“构造函数不带参数”是不准确的。当然,有一个默认构造函数,但也有一个常用的构造函数。 @chrylis 好的,我改了【参考方案4】:

java.util.Random 是一个随机数生成器,而不是一个数字。您可以使用它生成一个随机整数,如下所示:

Randrom rand = new Random();
int randomNum = x + rand.nextInt(y - x + 1);

【讨论】:

以上是关于Java中的随机整数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

请问用java从1-33个整数中随机抽取6个数字 且不重复 1-16随机抽取一个数,给小球?

随机化一个整数数组[重复]

请问用java从1-33个整数中随机抽取6个数字 且不重复 该怎么写?

Java学习之生成随机数

excel如何随机生成不重复整数?

java,随机生成20随机整数