I have inspect about generates of random number. You can see that random numbers is generated four times in the nested loop:
prob_burn = 0.1 for times in range(20): for i in range(1, row-1): for j in range(1, col-1): if yards[i][j] == 2: rand = np.random.rand() if yards[i+1][j] == 1: # South if rand < prob_burn: yards[i+1][j] = 2 else: yards[i+1][j] = 1 rand = np.random.rand() if yards[i][j+1] == 1: # East if rand < prob_burn: yards[i][j+1] = 2 else: yards[i][j+1] = 1 rand = np.random.rand() if yards[i-1][j] == 1: # North if rand < prob_burn: yards[i-1][j] = 2 else: yards[i-1][j] = 1 rand = np.random.rand() if yards[i][j-1] == 1: # West if rand < prob_burn: yards[i][j-1] = 2 else: yards[i][j-1] = 1 yards[i][j] = 0 else: continue print(rand) when the 'yards' multidimensional array code is:
row = 42 col = row yards = [[0 for i in range(col)] for j in range(row)] prob_tree = 0.8 for i in range(1, row-1): for j in range(1, col-1): rand = np.random.rand() if rand < prob_tree: yards[i][j] = 1 else: yards[i][j] = 0 yards[6][6] = 2 I have been confused when compiled this. Its gives the output:
0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 0.9858723195931566 That's seem not really generating random of numbers between [0,1]. I have already tried to growed that 'times' loop more than 20, but still gives a similar characteristic. How to solve it?