Tuesday, 26 November 2019

quantopian lecture discrete random binomial distribution - Pachinko game

Pachinko game

ball has equal chance to move right or left when hit obstacle
program simulates the distribution of balls when they fall to the bottom slots

class BinomialRandomVariable():
    def __init__(self, slots = 10, probabilityMovingRight = 0.5):
        self.variableType = "Binomial"
        self.slots = slots
        self.probabilityMovingRight = probabilityMovingRight
        return
    def draw(self, numberOfBalls):
        distribution = np.random.binomial(self.slots, self.probabilityMovingRight, numberOfBalls)
        return distribution

#10 slots, chance of moving right when hit obstacle is 50%, 1000 balls fall from top  
data = BinomialRandomVariable(10, 0.50).draw(1000)
print data

plt.hist(data, bins=21)
plt.xlabel('Value')
plt.ylabel('Occurences');

[ 7  5  5  4  3  4  2  5  5  5  6  4  4  5  4  6  5  3  3  4  6  4  4  6  6
  3  4  5  5  5  1  4  5  4  7  5  6  6  4  8  6  5  3  6  6  5  8  4  3  4
  4  6  6  7  7  9  5  4  6  4  4  5  7  3  6  6  5  3  5  3  0  4  2  6  3
  1  2  7  3  3  7  6  5  5  4  5  3  5  4  7  4  2  6  6  4  2  5  6  3  7
  6  6  4  6  2  7  6  7  5  6  5  5  4  4  2  2  7  6  5  4  5  6  9  5  3
  5  2  4  4  4  4  3  5  6  6  3  6  6  5  3  7  6  6  2  4  6  6  3  4  4
  7  6  8  4  5  2  6  4  3  4  7  6  5  5  4  7  7  4  4  5  2  3  6  5  6
  1  5  4  7  4  5  3  3  2  5  4  3  2  6  8  6  4  6  5  5  2  3 10  3  5
  3  6  4  4  4  6  6  5  5  5  3  8  4  6  4  8  6  6  7  6  9  3  5  2  4
  4  5  6  9  5  2  6  8  6  5  5  3  4  2  1  7  7  4  5  6  3  4  7  4  3
  6  9  7  7  3  5  4  4  3  2  5  7  5  8  7  6  5  2  5  3  4  4  6  3  7
  3  5  6  3  5  6  8  4  5  7  4  6  6  4  6  7  5  9  5  2  4  5  2  2  5
  4  6  7  4  5  6  6  6  7  8  7  3  4  6  4  4  6  5  3  6  6  6  5  1  5
  3  4  8  8  4  6  5  3  3  6  7  2  3  6  6  4  5  5  6  7  8  5  4  7  6
  3  3  5  5  3  5  4  5  4  8  6  4  6  5  4  6  6  6  5  5  7  3  4  3  6
  5  6  6  7  5  5  6  4  5  6  5  4  7  5  5  3  5  6  4  6  4  5  3  7  4
  8  3  5  4  3  4  5  5  6  4  6  5  7  4  4  5  4  3  6  6  6  4  6  6  4
  6  7  3  5  5  7  7  4  8  4  8  6  5  7  3  3  6  6  6  6  5  4  8  3  6
  5  6  5  4  5  8  2  4  3  5  5  5  4  4  6  5  5  6  8  4  5  6  6  3  3
  5  6  6  4 10  5  4  6  5  4  6  6  6  3  5  5  6  5  4  7  7  4  4  2  5
  4  6  8  4  6  5  5  4  3  7  4  1  2  4  5  5  2  6  4  7  7  7  2  4  5
  4  6  7  5  6  5  4  2  5  5  6  6  4  4  5  6  7  4  8  3  4  6  5  6  0
  5  5  4  5  8  6  7  3  4  4  3  5  6  6  6  4  5  2  7  7  6  6  5  5  5
  4  4  5  4  4  6  4  5  5  5  5  3  2  4  5  3  7  4  6  3  6  1  2  4  6
  5  5  5  7  4  4  5  7  3  5  5  4  6  2  5  7  6  3  7  5  4  3  3  6  3
  3  4  5  7  4  6  4  5  4  5  6  5  7  7  7  7  4  4  5  6  8  1  3  6  5
  3  5  2  3  7  4  5  7  3  4  5  4  4  5  6  6  6  5  3  5  5  6  5  5  2
  6  6  7  6  3  5  6  5  2  7  4  4  5  5  6  4  8  8  4  4  6  7  4  2  7
  7  5  4  4  5  6  3  5  5  4  6  3  6  7  6  3  6  8  5  4  4  6  6  4  6
  3  4  7  6  8  3  4  4  8  5  7  5  5  5  3  5  4  2  5  6  5  6  8  2  4
  3  6  4  4  6  7  3  4  6  7  4  5  5  2  6  3  4  5  3  5  8  8  7  4  5
  2  6  7  6  5  4  4  5  9  9  7  4  5  4  3  4  4  4  5  6  9  2  6  4  6
  5  6  4  5  7  7  6  3  3  3  5  7  7  8  5  7  6  5  4  7  5  5  4  4  7
  6  7  5  4  5  5  6  4  7  2  7  8  3  5  4  5  2  6  3  4  5  5  5  8  3
  6  4  4  5  6  6  4  6  5  8  7  5  5  7  3  6  5  4  6  7  6  2  4  3  5
  4  4  3  3  4  6  6  4  7  3  4  5  6  4  7  4  5  4  4  4  6  3  8  5  5
  5  5  4  7  3  3  3  5  6  5  5  5  4  5  4  4  6  4  7  3  4  5  5  6  5
  4  5  5  5  3  5  5  7  3  7  6  6  5  5  6  4  4  3  3  3  4  8  2  4  5
  3  6  4  2  3  6  2  6  5  5  4  5  5  6  6  5  4  7  5  5  2  4  5  3  4
  8  4  6  7  2  4  4  3  4  7  3  7  7  4  2  5  5  6  7  6  5  1  3  4  4]

balls fall mostly to the middle slots

#simulate balls turn to move left when hit obstacle
#10 slots, chance of moving right when hit obstacle is 35%, 1000 balls fall from top  
data = BinomialRandomVariable(10, 0.35).draw(1000)

[3 2 4 6 4 2 1 6 3 4 2 3 4 1 3 3 6 4 3 7 4 5 3 3 5 4 5 3 5 2 2 4 3 4 2 7 2
 5 3 3 3 2 6 3 2 2 2 3 4 4 3 6 3 2 3 4 5 2 1 6 6 1 2 2 5 3 6 7 6 3 5 7 5 4
 3 3 5 5 4 4 6 2 3 3 3 2 4 3 6 3 5 3 2 4 4 3 3 5 4 1 4 5 3 4 4 6 7 4 2 4 3
 4 3 4 4 3 5 4 4 5 2 3 6 5 4 4 4 5 6 3 1 1 4 2 3 6 3 2 4 3 2 2 2 3 2 5 5 4
 2 2 4 3 2 2 3 2 4 4 3 3 3 4 4 3 3 2 3 4 5 4 1 3 1 2 2 2 3 7 1 2 3 4 2 2 5
 2 4 3 5 1 5 3 3 4 2 3 2 2 6 1 2 1 5 3 2 5 6 4 2 5 1 2 3 3 4 4 4 1 3 3 4 0
 1 2 2 4 3 4 4 6 2 3 3 5 5 4 5 3 2 4 2 3 3 1 5 2 3 3 4 3 5 6 5 4 3 5 6 3 3
 3 4 2 3 2 4 2 3 4 3 3 2 6 3 2 0 3 3 4 3 4 4 2 2 6 4 4 2 2 4 3 5 5 2 2 4 6
 1 3 4 5 3 3 2 4 4 2 1 3 4 3 3 1 0 5 3 4 5 2 4 2 3 2 5 0 2 3 3 2 2 1 6 6 1
 3 4 5 4 3 6 4 5 5 3 1 4 2 4 4 2 3 5 4 4 1 5 6 3 7 5 3 4 6 3 2 6 2 4 3 3 6
 1 3 3 5 2 7 3 4 2 6 2 4 5 7 3 5 4 2 3 2 3 3 2 1 4 3 1 5 2 2 5 2 3 3 4 2 3
 3 6 4 1 3 7 1 3 4 4 2 3 4 4 2 6 3 4 2 2 3 3 3 2 4 2 2 5 2 5 4 1 3 4 4 3 2
 5 4 4 4 4 4 5 4 3 2 3 2 5 5 2 4 6 2 1 2 4 5 3 3 5 5 4 3 3 6 4 4 5 3 2 3 4
 4 3 1 5 7 3 2 4 4 3 3 5 4 3 1 2 6 3 4 3 4 6 6 6 2 4 2 3 6 3 3 2 3 7 2 6 1
 2 3 5 5 4 2 2 1 3 4 7 5 3 1 3 4 4 4 3 5 2 1 4 1 4 4 5 2 2 3 5 6 5 3 1 4 4
 4 5 4 3 3 5 6 5 6 3 2 5 3 2 4 2 4 4 3 1 5 5 3 5 3 2 2 4 6 4 3 6 3 3 4 3 3
 4 3 2 4 5 4 2 2 3 7 3 4 3 3 5 5 1 5 4 6 4 2 3 5 3 4 4 1 2 3 3 4 5 1 4 3 4
 2 3 7 2 3 3 2 3 3 3 6 5 3 3 4 4 3 3 3 3 1 3 3 6 5 4 3 4 4 2 3 3 6 3 2 4 4
 4 4 3 3 3 2 4 2 4 4 3 3 0 4 3 2 5 6 3 2 3 3 4 1 4 6 4 5 5 3 4 5 2 6 3 4 2
 3 2 4 2 5 4 3 3 2 4 4 1 4 4 5 4 0 3 5 5 5 4 5 3 3 4 3 3 2 3 5 4 8 3 4 1 5
 4 2 5 2 2 8 1 2 5 6 5 3 6 3 3 7 6 4 2 5 4 4 3 5 3 5 3 4 1 3 5 4 2 4 2 3 3
 4 2 3 3 5 4 3 2 3 2 1 2 4 4 1 2 3 6 5 5 4 6 2 5 6 2 2 5 2 2 2 8 3 6 1 3 4
 2 4 2 5 4 3 2 3 2 3 5 2 4 1 6 4 6 5 4 8 3 3 5 2 2 4 2 5 2 3 3 2 3 3 3 5 4
 4 5 2 2 3 4 5 3 3 3 3 3 6 4 3 2 2 7 4 5 6 2 3 4 5 2 4 3 1 4 4 3 3 3 3 4 7
 4 3 2 4 4 2 2 3 4 1 2 2 5 1 3 2 3 3 3 5 4 4 4 4 3 3 5 5 1 5 7 3 4 4 4 3 2
 6 3 2 3 2 3 6 4 1 3 3 3 4 3 5 5 2 2 2 4 4 3 3 3 5 2 5 4 4 3 5 2 2 5 2 3 3
 4 2 2 5 5 2 4 3 5 4 3 4 1 1 4 2 2 1 3 4 2 3 5 8 5 4 1 2 2 3 5 3 4 3 3 0 3
 6]

balls concentrate on left slots, no ball falls in very right slot 10

reference:


No comments:

Post a Comment