鱼C论坛

 找回密码
 立即注册
查看: 1261|回复: 2

[技术交流] Python小白从挖坑到脱坑之路031_对于随机漫步图的一些思考

[复制链接]
发表于 2018-9-12 14:12:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天看到《Python编程:从入门到实践》第15.3章节讲到如何用matplotlib绘制随机漫步图,引发了自己的一些思考,发帖记录留存,先上代码。
random_walk.py
from random import choice

class RandomWalk():
        
        def __init__(self, num_points = 5000):
                self.num_points = num_points
                self.x_values = [0]
                self.y_values = [0]
        
        def fill_walk(self):
                while len(self.x_values) < self.num_points:
                        
                        x_direction = choice([1,-1])
                        x_distance = choice([0,1,2,3,4])
                        x_step = x_direction * x_distance
                        
                        y_direction = choice([1,-1])
                        y_distance = choice([0,1,2,3,4])
                        y_step = y_direction * y_distance
                        
                        if x_step == y_step ==0:
                                continue
                        
                        next_x = self.x_values[-1] + x_step
                        next_y = self.y_values[-1] + y_step
                        
                        self.x_values.append(next_x)
                        self.y_values.append(next_y)


rw_visual.py
import matplotlib.pyplot as plt
from random_walk import RandomWalk

while True:
        rw = RandomWalk()
        rw.fill_walk()
        print(rw.x_values)
        point_numbers = list(range(rw.num_points))
        
        plt.figure(figsize=(10,6))
        
        plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolor='none',s=5)
        
        #标注起点和重点
        plt.scatter(0,0,c='green',edgecolors='none',s=100)
        plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',s=100)
        
        plt.show()
        
        keep_running = input('Again?(y/n):')
        if keep_running == 'n':
                break

突然想到小甲鱼书中乌龟吃鱼的游戏,完全可以用来绘制乌龟和鱼的动态图,并且可以根据“K最邻近算法”(来自《算法图解》第10章),根据乌龟和鱼的距离权重,计算剩下存活的每条鱼每步之后被吃的概率和乌龟吃到鱼的概率。有时间可以温故尝试,一定挺好玩的!深入学习后也许可以用到工作中,监控设备的故障点、特定参数等大数据信息分析一些可能引起故障的原因,以及预测即将发生故障的设备。
PS:帖子审核如果不通过能否给个提示原因,并且给个重新修改编辑的机会,否则那么多字白打很郁闷!
Figure_1.png
Figure_2.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-25 23:29:54 | 显示全部楼层
我擦,兄弟,你怎么和我想一块去了
我在写乌龟吃鱼的时候就在想,如何找出鱼数量,游戏面积与乌龟胜利之间联系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-26 10:57:16 | 显示全部楼层
RIXO 发表于 2018-9-25 23:29
我擦,兄弟,你怎么和我想一块去了
我在写乌龟吃鱼的时候就在想,如何找出鱼数量,游戏面积与乌 ...

哈哈随便想想没时间具体操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-5 23:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表