
Patrick B. answered 02/21/21
Math and computer tutor/teacher
NO!
I am getting convergence... 60% for the biased, 50% for the other 29.
Sorry, not a python fan.
//*******************************************************************************************************/
import java.math.*;
class Coin
{
public static final boolean HEAD = true;
public static final boolean TAIL = false;
protected double p;
public Coin() { p=0.5; }
public Coin(double p) { this.p = p; } // p is the probability of heads
public boolean Flip()
{
return (
( Math.random() ) >= ( 1 - p )
);
}
public static void main(String args[])
{
int numCoins=30;
Coin coins[] = new Coin[numCoins];
int numHeads[] = new int[numCoins];
int coinLoop;
for (coinLoop=0; coinLoop<numCoins; coinLoop++)
{
coins[coinLoop] = new Coin();
numHeads[coinLoop]=0;
}
coins[numCoins-1] = new Coin(0.6);
long numTrials = 1000000;
for (long iLoop=0; iLoop<numTrials; iLoop++)
{
for (coinLoop=0; coinLoop<numCoins; coinLoop++)
{
if (coins[coinLoop].Flip()) { numHeads[coinLoop]++; }
}
}
for (coinLoop=0; coinLoop<numCoins; coinLoop++)
{
System.out.println(" coin # " + (coinLoop+1) + " : " + numHeads[coinLoop]);
}
}
}