首页 > 解决方案 > 如何在 python 中生成三个随机数作为满足向量大小的向量分量

问题描述

我想知道如何在 python 中为方程式 F = sqrt (Fx^2+ Fy^2+Fz^2) 中的 Fx、Fy 和 Fz 生成随机数,其中 F 例如是 [10, 20, 30, 40] 而且我还想将 Fx、Fy 和 Fz 的值存储在三个不同的列表中。

先感谢您。

标签: pythonvectorrandom

解决方案


这描述了球体上的点,我们可以使用这些信息来计算该球体上的随机点:

import random
import math

def random_F(r):
    phi=random.uniform(0,2*math.pi)
    theta = random.uniform(0,2*math.pi)
    Fx = r*math.cos(phi)*math.sin(theta)
    Fy = r*math.sin(phi)*math.sin(theta)
    Fz = r*math.cos(theta)
    return Fx,Fy,Fz

Fx=[0]*4
Fy=[0]*4
Fz=[0]*4

for i in range(4):
    Fx[i],Fy[i],Fz[i] = random_F(10+10*i)

# checking if correct
for i in range(4):
    print(math.sqrt(Fx[i]**2+Fy[i]**2+Fz[i]**2))

输出:

10.0
20.0
30.0
40.0

推荐阅读