Я пишу программу для начинающих, используя массивы, math.random и и random генератор, чтобы вычислить сумму 2 бросков кубика определенное количество раз.
Я пытаюсь подсчитать, сколько раз сумма показывается, и мне нужно 2 знака после запятой.Есть ли способ приведения (?) И массива так, чтобы он отображался с двумя десятичными знаками?
Кроме того, когда я печатаю на экране программу, она показывает 120 раз каждую сумму.Я не понимаю, почему
Это то, что я имею до сих пор:
import java.util.Random;
import java.util.Scanner;
public class Die {
public static void main(String[] args){
int faces;
int face1;
int face2;
int face3;
int face4;
int times;
int index;
int sum;
Scanner scan = new Scanner(System.in);
Random rand = new Random();
System.out.println("%-0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-8-9-0-%");
System.out.println("%\t\t\t\t\t %");
System.out.println("% How good is the Random Number Generator %");
System.out.println("%\t\t\t\t\t %");
System.out.println("%-0-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-8-9-0-%");
System.out.println();
System.out.print("What is the number of sides of each die? ");
faces = scan.nextInt();
System.out.print("How many times do you want to roll the dice ?");
times = scan.nextInt();
int[]rollCount = new int[(faces*2) + 1];
for (int i = 0; i<rollCount.length; i++)
rollCount[i] = 0;
int dice1=faces;
for (int k=1; k<=dice1; k++){
int dice2=faces;
for (int r=1; r<=dice2; r++){
rollCount[k+r]++;
for (int roll = 0; roll <times; roll++){
}
}
}
int[]rollCountRand = new int[(faces*2) + 1];
for (index = 0; index <rollCountRand.length; index++)
rollCountRand[index] = 0;
for (int roll = 0; roll<=times; roll++){
face1 = 1 + rand.nextInt(faces);
face2 = 1 + rand.nextInt(faces);
rollCountRand[face1 + face2]++;
}
int[]rollCountMath = new int [(faces*2)+1];
for (int i=0; i<rollCountMath.length; i++)
rollCountMath[i] = 0;
for (int j=0; j<=times; j++){
face3 = (int)(faces* Math.random() + 1);
face4 = (int)(faces* Math.random() + 1);
sum = face3 + face4;
rollCountMath[sum]++;
}
for (int r = 2; r <rollCount.length; r++){
int percent = (rollCount[r] / ((faces*faces)*100));
for (int k = 2; k <rollCountRand.length; k++){
int percentOne = rollCountRand[k] / (times/100);
for (int q = 2; q <rollCountMath.length; q++){
int percentTwo =rollCountMath[q] / (times/100);
System.out.print(r + "\t( " + rollCount[r] + ")" + "\t" + "%" + percent + "\t" + k + "\t( " + rollCountRand[k]+")" + "\t"+"%"+percentOne + "\t" + q + "\t( " + rollCountMath[q]+")" + "\t" + "%"+percentTwo);
System.out.println();
Спасибо!