Вопрос: Напишите программу, которая бросает два игральных кубика, складывает их сумму 36 000 000 раз и выводит, сколько раз вычислялась каждая сумма.
Таким образом, очевидно, мне нужно дважды получить ранд для 6 чисел и добавить их - в цикле 36 миллионов раз, а затем получить счетчик частоты, сколько раз каждая сумма была найдена (которая колеблется от 2 до 12).
Теперь, учитывая тот факт, что я не очень разбираюсь в Java, я столкнулся с парой проблем. Это код, который у меня есть до сих пор:
package twodice;
import java.util.Random;
public class TwoDice
{
public static void main(String[] args)
{
int sum;
Random randomNumbers = new Random();
int[] frequency = new int[13];
for (int roll = 2; roll <= 36000000; roll++)
{
++frequency[(1 + randomNumbers.nextInt(6)) + (1 + randomNumbers.nextInt(6))];
}
System.out.printf("%s%10s\n", "Face", "Frequency");
for(int face = 1; face < frequency.length; face++)
{
System.out.printf("%4d%10d\n", face, frequency[face]);
}
}
}
Выход:
run:
Face Frequency
1 6001537
2 6003025
3 5997753
4 5997647
5 6000769
6 5999269
7 0
8 0
9 0
10 0
BUILD SUCCESSFUL (total time: 0 seconds)
Проблемы в том, что: 1. Суммы, которые отображаются, не 2-12, они 1-10 (Правильное количество сумм, просто не правильные суммы... 2. Частоты находятся только для 1- 6, а не 1-6 + 1-6.
Спасибо за всю твою помощь!
РЕДАКТИРОВАТЬ: Решено Оскаром Лопесом! Большое спасибо!