zoukankan      html  css  js  c++  java
  • python 从入门到实践 随机漫步

    主程序

     1 import matplotlib.pyplot as plt
     2 from randomwalk import RandomWalk
     3 
     4 rw = RandomWalk()
     5 rw.fill_walk()
     6 plt.style.use('seaborn')
     7 fig, ax = plt.subplots()
     8 points_numbers = range(rw.num_points)
     9 ax.scatter(rw.x_values, rw.y_values, c=points_numbers, 
    10             cmap=plt.cm.Blues, s=15)
    11 ax.get_xaxis().set_visible(False)
    12 ax.get_yaxis().set_visible(False)
    13 
    14 plt.show()

    randomwalk.py

     1 from random import choice
     2 
     3 class RandomWalk:
     4     def __init__(self, num_points=5000):
     5         self.num_points = num_points
     6         self.x_values = [0]
     7         self.y_values = [0]
     8 
     9     def fill_walk(self):
    10         while len(self.x_values) < self.num_points:
    11             x_direction = choice([-1, 1])
    12             x_distance = choice([0, 1, 2, 3, 4])
    13             x_step = x_direction * x_distance
    14             
    15             y_direction = choice([-1, 1])
    16             y_distance = choice([0, 1, 2, 3, 4])
    17             y_step = y_direction * y_distance
    18             
    19             if x_step==0 and y_step==0:
    20                 continue
    21 
    22             x = self.x_values[-1] + x_step
    23             y = self.y_values[-1] + y_step
    24 
    25             self.x_values.append(x)
    26             self.y_values.append(y)

    get_step()重构

     1 from random import choice
     2 
     3 class RandomWalk:
     4     def __init__(self, num_points=5000):
     5         self.num_points = num_points
     6         self.x_values = [0]
     7         self.y_values = [0]
     8 
     9     def get_step(self):
    10         direnction = choice([-1, 1])
    11         distance = choice([0, 1, 2, 3, 4])
    12         step = direction * distance
    13         return step
    14 
    15     def fill_walk(self):
    16         while len(self.x_values) < self.num_points:
    17             x_step = self.get_step()
    18             y_step = self.get_step()
    19             
    20             if x_step==0 and y_step==0:
    21                 continue
    22 
    23             x = self.x_values[-1] + x_step
    24             y = self.y_values[-1] + y_step
    25 
    26             self.x_values.append(x)
    27             self.y_values.append(y)
  • 相关阅读:
    4-11 EurekaClient集成演示
    4-10 原始版服务调用演示
    4-9 Consumer内容准备
    4-8 Provider内容准备
    Swift:用UICollectionView整一个瀑布流
    Swift: 用Alamofire做http请求,用ObjectMapper解析JSON
    Swift: 用UserDefaults保存复杂对象
    BAT的真的适合创业团队吗?
    为什么要用GCD-Swift2.x
    Objective-C的泛型
  • 原文地址:https://www.cnblogs.com/hanyu1995/p/14548333.html
Copyright © 2011-2022 走看看