如何计算某个范围内随机生成的数字

问题描述 投票:0回答:1

我必须创建一个带有参数的随机数分布,该参数计算小于或等于 50 以及大于 50 但小于或等于 100 的整数的数量。我是 Java 新手,不知道我在做什么,并且我的“导师”对于解释实际发生的事情没有什么帮助。 “我是机械师,电脑砸了!” 编码对我来说毫无意义,请帮忙!

以下是我到目前为止所得到的,我不断收到以下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
    at Test.main(Test.java:12)

我的代码:

public class Test {
    public static void main(String[] args) {
        int count = Integer.parseInt(args[0]);
        int[] array = new int[count];
        int low = 0;
        int high = 0;
        for (int i = 0; i < count; i++) {
            array[i] = Integer.parseInt(args[i + 1]);
            if (array[i] >= 1 && array[i] <= 50) {
                low++;
                System.out.println(low);
            }
            else if (array[i] > 50 && array[i] <= 100) {
                high++;
                System.out.println(high);
            }
        }
        System.out.println();
    }
}

我试图让它打印出 10 个随机数,并让它告诉我有多少个小于或等于 50,有多少个大于 50 但小于 100

java arrays random count distribution
1个回答
0
投票
  • 要生成随机数,请使用 Random 类。生成随机数 整数,您可以使用方法

    Random.nextInt(origin,bound);
    其中 原点是可能的最小数,边界是 上限独占。例如,生成一个随机数 1 到 10 之间,调用方法
    random.nextInt(1, 11);

  • 使用for循环生成10个随机数;

  • 使用数组来存储生成的数字

  • 使用 Arrays.toString(array) 打印数组

示例代码:

import java.util.Arrays;
import java.util.Random;

public class Example {

    public static void main(String[] args) {
        Random random = new Random();

        int lowerBound = 0;
        int upperBound = 101;

        int randomNumbersSize = 10;
        int[] randomNumbers = new int[randomNumbersSize];

        int under50Count = 0;
        int over50Count  = 0;

        for (int i = 0; i < randomNumbersSize; i++) {
            randomNumbers[i] = random.nextInt(lowerBound, upperBound);
            if (randomNumbers[i] <= 50) {
                under50Count++;
            }
            else {
                over50Count++;
            }
        }

        System.out.println("Generated random numbers: " + Arrays.toString(randomNumbers));
        System.out.println("Random numbers under 50: " + under50Count);
        System.out.println("Random numbers over 50:  " + over50Count);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.