Python 랜 덤 산책 기능 구현

무 작위 산책 생 성 은 불규칙 적 이 며 시스템 이 스스로 선택 한 결과 이다.설 정 된 규칙 에 따라 자체 적 으로 생 성 되 고 상하 좌우 의 방 위 는 매번 지나 가 는 방향 경 로 를 말한다.
우선,RandomWalk()클래스 와 fill 을 만 듭 니 다.walk()함수
random_walk.py

from random import choice
class Randomwalk ():
  '''           '''
  def __init__(self,num_point=5000):
    '''          '''
    self.num_point = num_point
    #             [0,0]
    self.x_lab = [0]
    self.y_lab = [0]
  def fill_walk(self):
    '''          '''
    while len(self.x_lab) < self.num_point:
      #             
      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 == 0 and y_step == 0:
        continue
      #      X Y  
      next_x = self.x_lab[-1] + x_step
      next_y = self.y_lab[-1] + y_step
      self.x_lab.append(next_x)
      self.y_lab.append(next_y)
2.랜 덤 산책 그림 그리 기
rw_visual.py

import matplotlib.pyplot as plt
from random_walk import Randomwalk
from random import choice
rw = Randomwalk()
rw.fill_walk()
plt.scatter(rw.x_lab,rw.y_lab,s=15)
plt.show()
3.효과 이미지 생 성

4.코드 수정-->테두리 숨 기기
rw_visual.py

import matplotlib.pyplot as plt
from random_walk import Randomwalk
from random import choice
while True:
  rw = Randomwalk()
  rw.fill_walk()
  #        
  plt.figure(dpi=128,figsize=(10,6))
  point_numbers = list(range(rw.num_point))
  #    (0,0)   
  plt.scatter(0,0,c='green',edgecolors='none',s=100)
  plt.scatter(rw.x_lab[-1],rw.y_lab[-1],c='red',edgecolors='none',s=100)
  #     
  plt.axes().get_xaxis().set_visible(False)
  plt.axes().get_yaxis().set_visible(False)
  plt.scatter(rw.x_lab,rw.y_lab,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)
  plt.show()
  keep_running = input("Make another walk?(y/n): ")
  keep_running = keep_running.lower()
  if keep_running == 'n':
    break
5.효과 보 여주 기

총결산
위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 Python 의 랜 덤 워 크 기능 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기