In [1]:

```
import scipy
```

In [23]:

```
#this is how we make a sequence of coin tosses
#each trial makes 40 choices between either 0 (heads) or 1 (tails) with 50/50 probability
s = scipy.random.choice([0,1], size = 40)
s
```

Out[23]:

In [27]:

```
#here we keep trying many many times until we get a random sequence where the sum of the first 20 attempts is 20. That is, we got 20 heads in a row
s = []
for i in range(10000000):
s = scipy.random.choice([0,1], size = 40)
prior = s[0:20]
if sum(prior) == 20:
print "found"
break
```

In [29]:

```
#we got one sequence, lets have a look
s
```

Out[29]:

In [33]:

```
prior = s[:20] #prior observation: 20 heads
future = s[20:]#future observations: 20 more random coin tosses
```

In [35]:

```
prior #as expected the prior observation is 20 tails in a row
```

Out[35]:

In [36]:

```
future #the future observation still has a 50/50 distribution of heads and tails, it doesn't 'compensate' for prior in any way
```

Out[36]:

In [46]:

```
#histogram of the prior observations.. 100% tails
ax = plt.hist(prior, bins = 4)
```

In [45]:

```
#histogram of the future observations: roughly 50/50. A
ax = plt.hist(future, bins = 4)
```

In [44]:

```
#histogram of the complete trial: highly skewed on tails
ax = plt.hist(s, bins = 4)
```

In [ ]:

```
#remember this is a series of completely random coin tosses
```