Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def get_count(dim):
- current_square = [0 for i in range(dim)]
- visited_squares = [current_square]
- count = 0
- while True:
- all_movements = []
- for i in range(dim):
- new_square_1 = [current_square[j] for j in range(dim)]
- new_square_2 = [current_square[j] for j in range(dim)]
- new_square_1[i] += 1
- new_square_2[i] -= 1
- all_movements.append(new_square_1)
- all_movements.append(new_square_2)
- # list of possible squares to visit
- test_l = [i for i in all_movements if i not in visited_squares]
- if test_l == []:
- return count
- next_square = random.choice(test_l)
- if next_square not in visited_squares:
- current_square = next_square
- visited_squares.append(next_square)
- count += 1
- def expected(d):
- total = float(sum(d[k] for k in d.keys()))
- result = 0
- for k in d.keys():
- result += k * (d[k] / total)
- return result
- def variance(d):
- mu = expected(d)
- total = float(sum(d[k] for k in d.keys()))
- result = 0
- for k in d.keys():
- result += (d[k] / total) * (k - mu) ** 2
- return result
- def analysis(dim):
- d = {}
- for i in range(1000):
- g = get_count(dim)
- if g not in d.keys():
- d[g] = 0
- d[g] += 1
- return [expected(d), variance(d)]
- print analysis(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement