This is what i have so far. I'm supposed to simulate the 4 dice tossed 1 million times . (so a total of 4 million) I'm trying to get the first die(If I can figure out the first one then I can figure out the other 3. So the trouble I am having is that I cant get the face in the output to show the numbers I appointed in the first array die1. How do I get the numbers for die1 to show on the output. Also the frequency is way over the 1 million. How do I get it so that my frequency to stay in the 1 million range (or any other number that the user may input. Really need help for this. Its due tomorrow but I have been working hard at this for the past week. Help would be appreciated! Thank you

import java.util.Random;
import java.util.Scanner;
public class Game_Of_Dice {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random rand = new Random();


int [] die1= {1,8,11,14,19,22,27,30,35,38,41,48}; //This sets up the array for each of the die.
int [] die2 = {2,7,10,15,15,23,26,31,34,39,42,47};//Goes from 0-11 in each of the die.
int [] die3 = {3,6,12,13,17,24,25,32,36,37,43,46};
int [] die4 = {4,5,9,16,20,21,28,29,33,40,44,45};
int temp, times;


System.out.println("We will simulate rolling 4 different dice.");
System.out.println("This will test the hypothesis of the 'go first dice' ");
System.out.println("We will now roll the first die one million times. Please enter the number one million.");
times = input.nextInt();

for (int i = 0; i < times; i++)
{
temp = rand.nextInt(12);
die1[temp]++;
}

System.out.println("Face\tFrequency"); //This will print out the face and frequency of the die.
for (int i = 0; i < 12; i++){
System.out.println(i+1 + "\t" + die1[i]);

}


OUTPUT:______________________________________________________________________________________

We will simulate rolling 4 different dice.
This will test the hypothesis of the 'go first dice'
We will now roll the first die one million times. Please enter the number one million.
1000000
Face Frequency
1 82932
2 83881
3 83356
4 83071
5 83618
6 82831
7 83422
8 83228
9 83467
10 83284
11 83398
12 83806

























}
}

You have made the arrays die1...die4 to do two things:

1. as a counter (accumulator) for the frequency, and
2. as the value of the face.
This is an impossible task, and that explains why the total adds up to more than a million.

I suggest you make the following changes:
1. Add a constant integer array, such as pips1[], to store the value of each face.
2. Initialize die1[]...die4[] to zero (which is the default in Java).
Proceed as above. Then the total should add up to 1 million.
Use the pip1[] array to show the value of faces 0-11.
Good luck!

Write a program to prompt the user to enter the cost of an item before VAT has been

added. The program should calculate and output the amount of VAT payable and the
total cost of the item including VAT.

VAT is currently charged at 20% and this should be stored as a constant in your
program.

It seems like you are trying to simulate rolling four different dice 1 million times.

To display the numbers assigned in the "die1" array, you need to update the "temp" variable inside your loop. Instead of generating a random number between 0 and 11, you can generate a random number between 0 and the length of the "die1" array.

Replace this line:
temp = rand.nextInt(12);

With this line:
temp = rand.nextInt(die1.length);

By doing this, you'll ensure that the random number generated falls within the range of the "die1" array.
Also, make sure to change the numbers in your arrays to correct ones if they are supposed to represent the side numbers of a die.

Regarding the frequency exceeding 1 million, it seems like you are initializing your "die1" array directly with the values and not considering the frequency. You can change your "die1" array to initialize it with all zeros, like this:

int[] die1 = new int[12];

This will create an empty "die1" array with a length of 12 (the number of sides on a die). Now, when you generate a random number and increment the value at that index in the "die1" array, it will start from 0 and increase.

Additionally, you need to change the range of your loop from 0 to times (input value), instead of 0 to 12. So the loop should be:

for (int i = 0; i < times; i++)

With these changes, your code should work as expected, displaying the numbers and keeping the frequency within the user-defined range.