简单随机漫步实例
【Python|简单随机漫步实例】
# 猫的随机漫步import numpy as np
import random# 1. 每个数组单元初始化为0,n * m的数组,代表瓷砖被猫到达的次数
#取n = 15, m = 15
mark = np.zeros((15, 15))
# 2. 猫在地板上的位置用坐标(currentX, currentY)表示
#取currentX = 8, currentY = 8
currentX = 8
currentY = 8
meowCurrent = (currentX, currentY)
# 3. 猫的移动方向
# imove[0] = 0;
# jmove[0] = 1;
// 正北方
# imove[1] = 1;
# jmove[1] = 1;
// 东北方
# imove[2] = 1;
# jmove[2] = 0;
// 正东方
# imove[3] = 1;
# jmove[3] = -1;
// 东南方
# imove[4] = 0;
# jmove[4] = -1;
// 正南方
# imove[5] = -1;
# jmove[5] = -1;
// 西南方
# imove[6] = -1;
# jmove[6] = 0;
// 正西方
# imove[7] = -1;
# jmove[7] = 1;
// 西北方
# 猫的随机漫步通过一个随机数k(0<=k<=7)来模拟
imove = [0, 1, 1, 1, 0, -1, -1, -1]
jmove = [1, 1, 0, -1, -1, -1, 0, 1]
# 4. nextX = currentX + imove[k], nextY = currentY + jmove[k]
# 5. 迭代限制
num = 0
MAX = 500# 判断是否到达过所有瓷砖
def judge_walk():
return 0 in mark# 随机漫步
# global声明全局变量
def random_walk():
k = random.randint(0, 7)
global currentX
currentX = currentX + imove[k]
global currentY
currentY = currentY + jmove[k]# 开始模拟
while judge_walk():
num = num + 1
if num >= MAX:
break
random_walk()
while currentX > 14 or currentY > 14 or currentX < 0 or currentY < 0:
random_walk()
mark[currentX, currentY] = mark[currentX, currentY] + 1
print(judge_walk())
print(mark)
参考博客
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)