-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathTossesForHead.java
More file actions
43 lines (37 loc) · 1.41 KB
/
TossesForHead.java
File metadata and controls
43 lines (37 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
* File: TossesForHead.java
* ----------------------------
* თქვენი ამოცანაა გააკეთოთ მონეტის აგდების სიმულაციები და დათვალოთ საშუალოდ
* რამდენჯერ უნდა ავაგდოთ მონეტა რათა ამოვიდეს ბორჯღალო
*/
import stanford.karel.*;
public class TossesForHead extends ConsoleProgram{
private static final int SIMULATION_NUM = 1000000;
public void run() {
//create Random Generator.
RandomGenerator rgen = RandomGenerator.getInstance();
//Variable to sum up all flip numbers to get head.
int flipNum = 0;
//Simulating coin flips.
for(int i = 0; i < SIMULATION_NUM; i++)
flipNum += simulateFlips(rgen);
//Get average number.
double averageFlipNum = (double) flipNum / SIMULATION_NUM;
//Print message.
println("Average coin flip number to get head is " + averageFlipNum + ".");
}
private int simulateFlips(RandomGenerator rgen) {
//From start counter is 0.
int flipNumToGetHead = 0;
while(true) {
//If Random Generator returns true, means we flipped head.
boolean coin = rgen.nextBoolean();
//Increase counter.
flipNumToGetHead++;
//If coin flipped on head, while should break.
if(coin)
break;
}
return flipNumToGetHead;
}
}