找到三个随机数的平均值

时间:2015-07-05 04:15:36

标签: java random average

我正在尝试生成0到50之间的三个随机整数,计算平均值,然后打印结果。 这就是我到目前为止所做的:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package random.numbers;
import java.util.Random;
/**
 *
 * @author ericl_000
 */
public class RandomNumbers {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Random rand = new Random ();
        int RandNum = 0;

        for(int i =0; i < 3; i++)
        {
            RandNum = rand.nextInt(50);
            System.out.println(RandNum);
        }

        int average = (RandNum);
        System.out.println(average);
    }
}

输出有3个随机数,但平均值是这3个数的最后一个数。我不知道如何获得这3个数字的平均值。 (我是Java新手。)

7 个答案:

答案 0 :(得分:2)

计算平均值的逻辑不正确,平均逻辑是:

average = (num1+num2+num3+... .... +num N)/N

所以你的代码逻辑应该是:

Random rand = new Random();
int RandNum = 0;
float average = 0;

for(int i =0; i < 3; i++)
{
    RandNum = rand.nextInt(50);
    System.out.println(RandNum);
    average = average+RandNum;
}

average = average/3;
System.out.println(average);

答案 1 :(得分:0)

平均公式是列表中所有数字的总和除以该列表中的项目数。您可以通过不断地将随机数添加到变量中来执行此操作,将其称为x,然后将其除以3(该列表中的项目总数)。

for(int i =0; i < 3; i++)
{
    RandNum = rand.nextInt(50);
    System.out.println(RandNum);
    int x += RandNum; //the += sign adds the current value of x to the value of RandNum
}

int average = (x/3);
System.out.println(average);

这个答案假设你只使用3个随机数。这是使用整数然而你应该使用双精度,考虑到大多数平均值不是精确整数:

double RandNum = 0;
for(int i =0; i < 3; i++)
{
    RandNum = rand.nextDouble(50);
    System.out.println(RandNum);
    double x += RandNum; //the += sign adds the current value of x to the value     of RandNum
}

double average = (x/3);
System.out.println(average);

答案 2 :(得分:0)

示例代码:

import java.util.Random;

public class RandomNumbers {

    public static void main (String [] args) {

        Random rand = new Random();
        int randomNum = 0, total = 0;
        int count = 3;

        for(int i = 0; i < count; i++)
        {
            // This gives you 0 to 49, does not include 50!
            randomNum = rand.nextInt(50);
            System.out.println(randomNum);

            // Keep track of total
            total += randomNum;
        }

        // Average is well, total divided by count
        int average = total / count;
        System.out.printf("Average (Integer division): %d%n", average);

        // Using double
        double averageDouble = total / ((double) count);
        System.out.printf("Average (Double division): %7.3f%n", averageDouble);
    }
}

<强>输出:

3
26
8
Average (Integer division): 12
Average (Double division):  12.333

注意:

  • 使用整数或双精度进行除法会得到不同的结果!
  • random#nextInt(int n)为您提供0(含)与指定值(不包含)之间的值,即nextInt(50)将为您提供0到49.

答案 3 :(得分:0)

你会如何计算现实生活中的平均值?你添加数字,然后除以3.

int sum=0;
for(i=0; i<3; i++)
   sum += rand.nextInt(50);
System.out.println(sum/3.0);

答案 4 :(得分:0)

您不会在生成随机数时保存它们。

for(int i =0; i < 3; i++)
{
    RandNum = rand.nextInt(50);
    System.out.println(RandNum);
}

对于循环的每次迭代,生成并打印随机数 但是没有保存。那么你怎么能在以后访问它们来计算平均值 试试这样的事情

for(int i =0; i < 3; i++)
{
    RandNum += rand.nextInt(50);
}

这会将生成的随机数添加到已经生成的一个。所以基本上 RandNum将在循环的所有迭代结束时包含总和。

然后您可以使用以下内容打印平均值。

System.out.println(RandNum/3);

只需命名一个变量&#39; average&#39;,它就找不到平均值。你必须进行必要的计算。(。总和/ n)。

答案 5 :(得分:0)

不确定为什么这是一个复杂的问题。

bar

答案 6 :(得分:-1)

import java.util.Random;

public class RandomNumbers {

public static void main(String[] args) {
    Random rand = new Random ();
    int RandNum = 0;


int[] numbers = new int[]{rand.nextInt(50),rand.nextInt(50),rand.nextInt(50)};

            double sum = 0; 

for(int i =0; i < 3; i++)
{
System.out.println(numbers[i]);
}

            for(int i=0; i < numbers.length ; i++)
                    sum = sum + numbers[i];
            double average = sum / numbers.length;
            System.out.println("Average value of array elements is : " + average);


    }
    }