python小练习1:随机漫步
2017-04-15 00:00
429 查看
假设某人位于N*N的区域中心,每次随机选择一个上下左右方向,他从中心处走出该区域所用的步数为一次模拟,求多次模拟的平均数
#coding=utf-8 import random #N = int(raw_input(u"请输入矩阵大小:")) #K = int(raw_input(u"请输入模拟次数:")) directions = {"W":"<","E":">","N":"∧","S":"v"} #生成初始矩阵函数 def get_matrix(n): matrix = [] for i in range(n): matrix.append(["." for i in range(n)]) return matrix #打印矩阵函数 def print_matrix(matrix): for item in matrix: print " ".join(item) #位置移动函数,坐标加减并返回 def move(x,y,direction): if direction == "W": y -= 1 if direction == "E": y += 1 if direction == "N": x -= 1 if direction == "S": x += 1 return x,y #单次模拟函数 def single_simulate(N): x, y = N/2,N/2 step = 0 matrix = get_matrix(N) matrix[x][y] = "o" print_matrix(matrix) print "steps %d; Y=%d,X=%d,N=%d; Status:IN" % (step,y,x,N) while 0 <= x <= N-1 and 0 <= y <=N-1: matrix[x][y] = "o" direction = random.choice(["W", "E", "N", "S"]) x,y = move(x,y,direction) step += 1 if 0 <= x <= N-1 and 0 <= y <=N-1: matrix[x][y] = directions.get(direction) print_matrix(matrix) print "steps %d; Y=%d,X=%d,N=%d; Status:IN" % (step,y,x,N) else: print_matrix(matrix) print "steps %d; Y=%d,X=%d,N=%d; Status:OUT" % (step,y,x,N) return step def simulate(N,K): count = [] for i in range(K): print "N=%d 时,开始第 %d 次模拟" % (N,i) step = single_simulate(N) count.append(step) print u"N=%d 时,第 %d 次模拟结束,共 %d 步走出" % (N,i+1,step) print u"N=%d 时,平均 %d 步走出" % (N,sum(count)/len(count)) simulate(11,2)
相关文章推荐
- python散点图实例之随机漫步
- 使用Python的matplotlib库生成随机漫步图
- Python3随机漫步生成数据并绘制
- 学习python:练习3.随机生成200个序列号存入文件
- 【Python】随机漫步
- python实现随机漫步
- Python使用matplotlib绘制随机漫步图
- 【Python-3.5】绘制随机漫步图
- python 范例 一次模仿多次随机漫步
- 【Python 练习】随机显示不重复的单词
- python 数据可视化 matplotlib学习三:生成随机漫步数据并使用matplotlib呈现
- Python练习之-----随机验证码
- python3.5绘制随机漫步图
- python数据可视化——散点图实例之随机漫步
- python练习笔记——模拟双色球随机输出情况
- Python 每日练习 03 把将随机生成的200 个激活码保存在mysql中
- Python小练习-生成随机验证码
- python使用matplotlib库生成随机漫步图
- Python每日练习 02 用python随机生成200个激活码
- Python实现随机漫步