Java如何生成一定范围内的随机数? [复制]

Posted

技术标签:

【中文标题】Java如何生成一定范围内的随机数? [复制]【英文标题】:How can I generate a random number within a certain range with Java? [duplicate] 【发布时间】:2017-11-06 20:37:59 【问题描述】:

我想在 Java 中生成一个随机数。它可以是整数、字节或浮点类型,但我真正需要的是生成一个随机数。这就是我正在做的:

    生成一定范围内的随机数(例如 5 到 20)。 获取数字并将其存储在变量中。 对其进行算术运算。

代码如下:

import java.util.HashMap;

public class Attack 
    public static void main(String[] args) 
        HashMap<String, Integer> attacks = new HashMap<String, Integer>();
        attacks.put("Punch", 1);
        attacks.put("Uppercut", 3);
        attacks.put("Roundhouse Kick", 5);

        int actionPoints = // Code for random number generation

        System.out.println("A brigade integrant appeared!");
        System.out.println("What do you do?");
        System.out.println("1: Punch [1 AP], 2: Uppercut [3 AP], 3: Roundhouse Kick [5 AP]");
        System.out.println("You have " + actionPoints + " Action Points.");
        Scanner reader = new Scanner(System.in);
        System.out.println("Enter a number: ");
        int n = reader.nextInt();
        reader.close();

        if n == 1 
            System.out.println("The brigade integrant takes 2 HP of damage!");
        
        else if n == 2 
            System.out.println("The brigade integrant takes 5 HP of damage!");
        
        else if n == 3 
            System.out.println("The brigade integrant takes 8 HP of damage!");
        
    

【问题讨论】:

Have - you - Googled - anything? 【参考方案1】:

在 Java 1.7+ 中,您可以在 one line 中执行此操作(不包括导入语句;):

import java.util.concurrent.ThreadLocalRandom;

int actionPoints = ThreadLocalRandom.current().nextInt(5, 21); // 5 to 20 inclusive

【讨论】:

【参考方案2】:

试试这个:

int lower = 12;
int higher = 29;

int random = (int)(Math.random() * (higher-lower)) + lower;

【讨论】:

import math使用的代码吗? 不,你不必导入数学类【参考方案3】:

您可以通过多种方式生成随机数。其中两个是:

Math.random(); // Random values ranging from 0 to 1

Random rand; rand.nextInt(x); // Random int ranging from 0 to x

要指定确切的范围,您可以执行以下操作:

int RandomNumber = Min + (int)(Math.random() * Max); 

【讨论】:

以上是关于Java如何生成一定范围内的随机数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

C:如何创建一定范围内的随机数? [复制]

如何在excel中生成一个在一定范围内的随机数

如何用netlogo 产生在一定范围内的随机数

java生成指定范围内随机秒数

C#如何生成一个范围内的随机数,偏向范围的低端? [复制]

生成范围内的随机数? [复制]