about summary refs log tree commit diff
path: root/scratch/facebook/moderate/rand7.py
blob: ed3a7cea80e51fe66c4c7e3b67fcb0c77c59f68a (plain) (blame)
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
# Define a function, rand7, that generates a random number [0,7), using only
# rand5, which generates a random number [0,5).

import random
from collections import Counter

# Returns [0,4]
def rand5():
    return random.randint(0,4)

# Return [0,6]
def rand7_a():
    return sum(rand5() for _ in range(7)) % 7

# Return [0,6]
def rand7_b():
    x = 5 * rand5() + rand5()
    if x < 21:
        return x % 7
    return rand7_b()

c = Counter([rand7_a() for _ in range(100000)])
print(c)
c = Counter([rand7_b() for _ in range(100000)])
print(c)