Probstat/coin toss experiments
In this part, we will perform a few simulations on coin tosses. Below are example codes for generating random numbers in Java and Python. You can definitely use other languages.
เนื้อหา
Some code
The following is a Java code for randomly tossing a fair coin for 100 times.
import java.util.Random;
public class CoinToss {
public static void main(String[] args) {
Random random = new Random();
int N = 100;
int c = 0;
for (int i = 0; i < N; i++) {
boolean head = random.nextDouble() >= 0.5;
if (head) {
c++;
}
}
System.out.println("Heads: " + c);
System.out.println("Freq/N: " + ((double) c)/N);
}
}
And this is an equivalent one in Python.
import random
N = 100
c = 0
for i in range(N):
head = random.random() >= 0.5
if head:
c += 1
print "Heads:",c
print "Freq/N:",float(c)/N
Distributions
Plotting distributions
Run the simulations for the following experiments many times (at least 1000 times for smaller ones) and plot the histograms (as bar charts) of the number of heads.
- Make 2 coin tosses.
- Make 3 coin tosses.
- Make 5 coin tosses.
- Make 10 coin tosses.
- Make 50 coin tosses.
- Make 1000 coin tosses. (In your histogram, you may want to try to use bucket size = 10 so that your bar chart is manageable.)
Conditional distributions
Try the same experiment for N=50, 100, and 1000, but if you get only K=20, 40, and 400 heads you run the experiment again. Plot the histogram for the whole range of possible numbers of heads. Compare the histograms with the ones from the previous experiments.