这是我的密码:
import random
import numpy as np
import matplotlib.pyplot as plt
import agent
deer = agent.Agent()
print(deer.x,deer.y)
deer.step()
print(deer.x,deer.y)
def walk(length):
for i in range(length):
#while deer.x <= i:
deer.step()
countx= deer.x + 1
county=deer.y +1
#print(countx,county)
x= countx
y= county
return deer.step()
walk(100)
walker = walk(100)
plt.plot(walk[0],walk[1],label= 'Random walk')
plt.scatter(walk[0],walk[1],s=50,c=range(101))
plt.show()
我想让x和y的计数步是的,但是我不明白为什么它不能识别函数中的x和y值。目标是绘制所采取的100个随机步骤。你知道吗
在有了100个步骤中的一个情节之后,我正在尝试创建第二个方法来执行一个步骤。与其选择一个随机的新角度并移动,代理的当前方向应该改变一个随机量,这个随机量是从均值为0,标准偏差Sigma=1的正态分布中选择的(自我定位= 自我定位+ np.随机.正态(0,Sigma))。你知道吗
它还假设要走100步,使用matplolib显示轨迹,并显示代理与其起点之间的距离。你知道吗
我用了班级代理:
class Agent:
# initializer with default argument value
def __init__(self,sigma=0.5):
self.x = 0.0 # agent's x position
self.y = 0.0 # agent's y position
self.o = 0.0 # agent's orientation
self.v = 1.0 # agent's velocity
self.sigma = sigma
def step(self):
self.o = random.random()*2*np.pi
self.x +=self.v*np.cos(self.o)
self.y += self.v*np.sin(self.o)
def turn(self):
self.o += np.random.normal(0,self.sigma)
self.x += self.v*np.cos(self.o)
self.y += self.v*np.sin(self.o)
def distance(self):
return np.sqrt(self.x**2 + self.y**2)
目前没有回答
相关问题 更多 >
编程相关推荐