假设有个飞人,一开始在xyz坐标轴平面的原点(0,0,0)处。 每过一秒,它会随机地往一个方向北(y正半轴)南(y负半轴)东(x正半轴)西(x负半轴)上(z正半轴)下(z负半轴)飞n个单位长度(n取值范围是1-10, 包括10)能飞到z<0处
要求 : 记录过了1秒, 2秒, 100000秒后, 它距离原点的矩离s
**
我的代码:
import random
import matplotlib.pyplot as plt
x=0
y=0
distance=[]
for i in range(100000):
mydir = random.randint(1,4)
if mydir == 1:
x+=1
distance.append((x2+y2)0.5)
elif mydir == 2:
y+=1
distance.append((x2+y2)0.5)
elif mydir == 3:
x-=1
distance.append((x2+y2)0.5)
else:
y-=1
distance.append((x2+y2)**0.5)
plt.plot(range(100000),distance)
plt.show()
plt.close()
(改正)(能用必采纳)python画图
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-文盲老顾 2021-11-15 15:58关注
import random import matplotlib.pyplot as plt # 初始坐标位置 pos = [0,0,0] # 用以记录每步的移动及移动后坐标位置 steps=[] # 移动次数 step = 100000 # 初始化定义方向,及方向影响的坐标轴 arrow = {'e':[1,0,0],'w':[-1,0,0],'s':[0,-1,0],'n':[0,1,0],'u':[0,0,1],'d':[0,0,-1]} distance=[] for i in range(step): # 随机获取移动方向 r = random.choice(list(set(arrow))) # 获取移动距离 l = random.randint(1, 10) # 将移动方向和距离更新至坐标点中 pos[0] += arrow[r][0]*l pos[1] += arrow[r][1]*l pos[2] += arrow[r][2]*l # 记录移动信息及坐标点 steps.append(r+str(l)+' ['+','.join([str(n) for n in pos])+']') # 记录当前坐标点距离原点距离 distance.append((pos[0]**2+pos[1]**2+pos[2]**2)**0.5) #print('\n'.join(steps)) plt.plot(range(step),distance) plt.show() plt.close()
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 关于大棚监测的pcb板设计
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题