#!/usr/bin/python
import sys
from random import random

# Column/row 0 for rainy, 1 for sunny.
transition_matrix = [[0.6, 0.4], [0.2, 0.8]]

def occupancies(matrix, occupancy):
    # Iteratively compute the PageRank of the rainy-sunny transition matrix.
    while True:
        yield occupancy
        occupancy = [sum(a * b for a, b in zip(occupancy, column))
                     for column in zip(*matrix)]

if __name__ == '__main__':
    for _, occupancy in zip(range(20), occupancies(transition_matrix, [1, 0])):
        print occupancy


    state = 'R'
    for ii in range(1000):
        if state == 'S':
            if random() < 0.2:
                state = 'R'
        elif state == 'R':
            if random() < 0.4:
                state = 'S'
        sys.stdout.write(state)

    print

    # A-B problem, Unit 11 section 7.
    for _, occupancy in zip(range(20), occupancies([[0.5, 0.5], [1, 0]], [1, 0])):
        print occupancy
