Java,使用Math.random计算中位数和平均值

标签 java hashmap average median calculation

我的程序让用户选择他想扔骰子的次数,然后程序打印出他获得骰子每一面的次数。

到目前为止,一切都很好,但是我必须计算所有这些掷骰子的中位数和平均值,并且我希望平均值和中位数的范围都在 1-6 之间,对应于骰子有多少面 -我该怎么做?

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class Uppgift4_5 
{
    public static void main(String[] args) 
    {
        Scanner inputReader = new Scanner(System.in);
        System.out.println("How many times do you want to throw the dice:");
        int amount = inputReader.nextInt();
        System.out.println("Antal försök:" + amount);

        Map<Integer, Integer> rolls = new HashMap<>();

        for (int i = 1; i < 7; i++) 
        {
            rolls.put(i, 0);
        }

        for (int i = 0; i < amount; i++) 
        {
            int value = (int) (Math.random() * 6 + 1);
            rolls.put(value, rolls.get(value) + 1);
        }

        for (Map.Entry<Integer, Integer> entry : rolls.entrySet()) 
        {
            System.out.println(("Antal kast som gav "+entry.getKey()) + ": " + entry.getValue());
        }
    }
}

第一个 for 循环初始化 HashMap 中的键 1 到 6。

第二个 for 循环计算 X 次骰子抛出并将它们添加到 HashMap 中。

第三个 for 循环迭代 HashMap 中的值并打印出结果。

最佳答案

要计算平均值,您可以使用以下代码:

double average=0;
double total=0;
for (Map.Entry<Integer, Integer> entry : rolls.entrySet()) 
{
    total+=entry.getKey()*entry.getValue();
    System.out.println(("Antal kast som gav "+entry.getKey()) + ": " + entry.getValue());
}

average = total/amount;
System.out.println("Average : "+average);

关于Java,使用Math.random计算中位数和平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43800386/

相关文章:

python - 使用 MongoDB 作为持久哈希表

JavaScript 从用户输入中查找平均值

sql - 选择日期的特定值的平均值

java - 如何在 Java 中使用 pdfbox 2.0 创建线性化(快速 Web View )pdf?

java - JTextPane:如何设置字体大小

java - 将列表 A 中的元素添加到列表 B 的元素中,其中特殊成员相等

arrays - 蒙戈聚合 : return total average of array values

Java套接字绑定(bind)两次无异常

scala map 通过键获取值,键不区分大小写

java - hashmap如何确保每个哈希值在哈希表中分配唯一的索引