Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2012
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.48 KB | None | 0 0
  1. import random
  2.  
  3. def get_count(dim):
  4.     current_square = [0 for i in range(dim)]
  5.     visited_squares = [current_square]
  6.  
  7.     count = 0
  8.  
  9.     while True:
  10.         all_movements = []
  11.         for i in range(dim):
  12.             new_square_1 = [current_square[j] for j in range(dim)]
  13.             new_square_2 = [current_square[j] for j in range(dim)]
  14.             new_square_1[i] += 1
  15.             new_square_2[i] -= 1
  16.  
  17.             all_movements.append(new_square_1)
  18.             all_movements.append(new_square_2)
  19.  
  20.         # list of possible squares to visit
  21.         test_l = [i for i in all_movements if i not in visited_squares]
  22.        
  23.         if test_l == []:
  24.             return count
  25.  
  26.         next_square = random.choice(test_l)
  27.  
  28.         if next_square not in visited_squares:
  29.             current_square = next_square
  30.             visited_squares.append(next_square)
  31.             count += 1
  32.  
  33. def expected(d):
  34.     total = float(sum(d[k] for k in d.keys()))
  35.     result = 0
  36.  
  37.     for k in d.keys():
  38.         result += k * (d[k] / total)
  39.     return result
  40.  
  41. def variance(d):
  42.     mu = expected(d)
  43.     total = float(sum(d[k] for k in d.keys()))
  44.    
  45.     result = 0
  46.     for k in d.keys():
  47.         result += (d[k] / total) * (k - mu) ** 2
  48.     return result
  49.  
  50.  
  51. def analysis(dim):
  52.     d = {}
  53.     for i in range(1000):
  54.         g = get_count(dim)
  55.         if g not in d.keys():
  56.             d[g] = 0
  57.         d[g] += 1
  58.  
  59.     return [expected(d), variance(d)]
  60.    
  61. print analysis(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement