循环java中Rnd Num的平均值
当我生成3个介于1和20之间的随机整数时,我一直在尝试计算平均值。我必须把平均数四舍五入到整数,然后重复10000次。当我重复测试我的程序2次时,我得到以下输出:循环java中Rnd Num的平均值,java,Java,当我生成3个介于1和20之间的随机整数时,我一直在尝试计算平均值。我必须把平均数四舍五入到整数,然后重复10000次。当我重复测试我的程序2次时,我得到以下输出: 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个数字的平均值。这里,第二个循环将第一个循环的
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个数字的平均值。这里,第二个循环将第一个循环的和与第二个循环的和相加,使得平均值错误(和: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);
}
}
}
package直方图;
导入java.util.Random;
公共类随机数{
公共静态void main(字符串[]args){
最终整数N=2;
Random rand=新的Random();
int n;
整数平均;
整数和=0;
对于(int a=0;a
如果您想要总的总和,我建议添加第二个iterationSum
变量,将3个数字相加。比如:
for (int a = 0; a < N; a++) {
int iterationSum = 0;
for (int i = 0; i < 3; i++) {
...
iterationSum += n;
}
average = iterationSum / 3;
...
}
for(int a=0;a
如果您不关心总和,只需在每次迭代中将总和重置为0即可:
for (int a = 0; a < N; a++) {
sum = 0;
...
}
for(int a=0;a
如果您想要总的总和,我建议添加第二个iterationSum
变量,将3个数字相加。比如:
for (int a = 0; a < N; a++) {
int iterationSum = 0;
for (int i = 0; i < 3; i++) {
...
iterationSum += n;
}
average = iterationSum / 3;
...
}
for(int a=0;a
如果您不关心总和,只需在每次迭代中将总和重置为0即可:
for (int a = 0; a < N; a++) {
sum = 0;
...
}
for(int a=0;a
平均值应该是3个数字的平均值。这里,这个
第二个循环将第一个循环的和与第二个循环的和相加
使平均值错误(总和:34+22=56)。我希望它是22所以
平均为7
一种方法是在将sum
和average
打印到控制台后重置sum
的值
示例:
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);
sum = 0;
}
int n;
int average = 0;
for (int a = 0; a < N; a++) {
int sum = 0;
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);
}
平均值应该是3个数字的平均值。这里,这个
第二个循环将第一个循环的和与第二个循环的和相加
使平均值错误(总和:34+22=56)。我希望它是22所以
平均为7
一种方法是在将sum
和average
打印到控制台后重置sum
的值
示例:
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);
sum = 0;
}
int n;
int average = 0;
for (int a = 0; a < N; a++) {
int sum = 0;
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);
}
你的
sum+=n第二个for
循环中的code>不断增加sum
的值(甚至循环中较旧的sum值)。因此,每次在开始第一个循环时,都需要将sum
的值重置为0
for (int a = 0; a < N; a++) {
sum = 0;
//rest of the code
for(int a=0;a
您的sum+=n;
在第二个for
循环中,不断增加sum
的值(即使是循环中较旧的总和值)。因此,每次开始第一个循环时,您都需要将sum
的值重置为0
for (int a = 0; a < N; a++) {
sum = 0;
//rest of the code
for(int a=0;a
公共静态void main(字符串[]args){
最终整数N=2;
Random rand=新的Random();
int n;
整数平均;
整数和=0;
对于(int a=0;a
公共静态void main(字符串[]args){
最终整数N=2;
Random rand=新的Random();
int n;
整数平均;
整数和=0;
对于(int a=0;a
必须在第一个循环后清除sum
变量:
//..
int sum;
for (int a = 0; a < N; a++) {
sum = 0; // -------> Here it is necessary to be clean for the next iteration
for (int i = 0; i < 3; i++) {
n = rand.nextInt(20) + 1;
System.out.println("Number is :" + n);
sum += n;
}
//...
}
/。。
整数和;
对于(int a=0;a在这里,下一次迭代必须保持干净
对于(int i=0;i<3;i++){
n=兰特·耐克斯汀(20)+1;
System.out.println(“编号为:+n”);
总和+=n;
}
//...
}
必须在第一个循环后清除sum
变量:
//..
int sum;
for (int a = 0; a < N; a++) {
sum = 0; // -------> Here it is necessary to be clean for the next iteration
for (int i = 0; i < 3; i++) {
n = rand.nextInt(20) + 1;
System.out.println("Number is :" + n);
sum += n;
}
//...
}
/。。
整数和;
对于(int a=0;a在这里,下一次迭代必须保持干净
对于(int i=0;i<3;i++){
n=兰特·耐克斯汀(20)+1;
System.out.println(“编号为:+n”);
总和+=n;
}
//...
}
计算平均值后,您可以将sum
重置为0。您必须确保在正确的位置将sum
初始化为0。事实上,您甚至不应该在外循环外声明n、sum和average。n应该在内循环内声明,sum和average应该在外循环内声明。下一步是第二步是提取内部循环的主体,计算平均值,并将其放入自己的方法中。始终保持变量的范围尽可能窄