基于速记游走的例子,使用ndarray和随机数生成函数模拟一个物体在三维空间随机游走的过程
时间: 2024-05-27 14:12:01 浏览: 13
import numpy as np
import matplotlib.pyplot as plt
# 定义步长和步数
step_size = 0.1
num_steps = 1000
# 初始化位置
position = np.zeros(3)
# 创建随机数生成器
rng = np.random.default_rng()
# 进行随机游走
for i in range(num_steps):
# 生成随机步长
step = rng.normal(scale=step_size, size=3)
# 更新位置
position += step
# 绘制当前位置
plt.plot(position[0], position[1], position[2], 'o')
# 添加标题和坐标轴标签
plt.title('Random Walk in 3D Space')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
相关问题
基于速记游走的例子,使用ndarray和随机数生成函数模拟一个物体在三维空间随机游走的过程创建3*10的二位数组,记录物体每步在三个轴向上的移动距离。在每个轴向的移动距离服从标准正态分布。行序0、1、2分别对应x轴、y轴、z轴
的移动距离。
代码如下:
```python
import numpy as np
# 设置随机数种子
np.random.seed(0)
# 创建3*10的二维数组,记录物体每步在三个轴向上的移动距离
steps = np.random.normal(loc=0, scale=1, size=(3, 10))
# 输出结果
print(steps)
```
输出结果如下:
```
[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799 -0.97727788
0.95008842 -0.15135721 -0.10321885 0.4105985 ]
[ 0.14404357 1.45427351 0.76103773 0.12167502 0.44386323 0.33367433
1.49407907 -0.20515826 0.3130677 -0.85409574]
[-2.55298982 0.6536186 0.8644362 -0.74216502 2.26975462 -1.45436567
0.04575852 -0.18718385 1.53277921 1.46935877]]
```
可以看到,结果是一个3*10的二维数组,每行分别对应x轴、y轴、z轴的移动距离。每个元素都是从标准正态分布中随机生成的。
写一个生成50个六维向量的随机数生成函数
好的,以下是一个生成50个六维向量的随机数生成函数的示例代码(使用Python语言):
```python
import random
def generate_random_vectors():
vectors = []
for i in range(50):
vector = []
for j in range(6):
vector.append(random.uniform(-1, 1))
vectors.append(vector)
return vectors
```
这个函数中,我们使用了Python内置的 `random` 模块来生成随机数。使用 `random.uniform(-1, 1)` 可以生成一个在 -1 和 1 之间的随机浮点数。我们使用两个嵌套的 `for` 循环来生成50个六维向量,最后将它们存储在一个列表中并返回。