Probstat/coin toss experiments

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

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

Number of trials

Probability estimations