java - 循环java中Rnd Num的平均值

标签 java

当我生成 3 个 1 到 20 之间的随机整数时,我被困在计算平均值上。我必须将平均值四舍五入为 int 并重复 10000 次。当我重复测试我的程序两次时,我得到的输出:

Number is :18
Number is :14
Number is :2
sum is: 34
Average is: 11

Number is :13
Number is :3
Number is :6
sum is: 56
Average is: 18

但是,平均值应该是 3 个数字的平均值。这里,第二个循环将第一个循环的总和与第二个循环的总和相加,使得平均值错误(Sum:34+22=56)。我希望它是 22,所以平均值是 7。我注意到问题可能出在这一行,sum += n; ,但我不知道另一种方法可以为每个循环添加 3 个数字以获得平均值。

package Histogram;

import java.util.Random;

public class RandomNumbers {
    public static void main(String[] args) {
        final int N = 2;
        Random rand = new Random();
        int n;
        int average;
        int sum = 0;

        for (int a = 0; a < N; a++) {
            for (int i = 0; i < 3; i++) {
                n = rand.nextInt(20) + 1;
                System.out.println("Number is :" + n);
                sum += n;
            }
            average = sum / 3;

        System.out.println("sum is: " + sum);
        System.out.println("Average is: " + average);

        }

    }
}

最佳答案

第二个 for 循环中的 sum += n; 不断增加 sum 的值(甚至是循环中较旧的总和值) )。因此,每次开始第一个循环时,您都需要将 sum 的值重置为 0。

for (int a = 0; a < N; a++) {
   sum = 0;
   //rest of the code

关于java - 循环java中Rnd Num的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173743/

相关文章:

java - NumberPicker 与数据库中的数组

java - 从另一个 Activity 调用另一个 Activity 的方法

java - 生成相关数字

java - Hadoop 作业仅在 LocalJobRunner 上运行

当我加载 jar 时出现 java.lang.UnsatisfiedLinkError 。

java - 如何在运行时从外部 jar 访问方法?

java - getClass() 是如何在 java 中实现的?

java - 逆向3数组列表

java - 在 Spark Streaming 中调用 updateStateByKey 时出错

java - 如何在 Java 中将 IEEE-754 二进制表示字符串转换为 float 或 double ?