gpt4 book ai didi

python - 生成两个平方和==1的随机数

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:01 25 4
gpt4 key购买 nike

您好,我想生成两个随机数,使它们的平方和等于 1。

这段代码是我写的。它们的平方和可能不完全等于 1,但应该接近 0.999。我还使用了 if(math.isclose(abs(gene_value_1)**2 + abs(gene_value_2)**2, 1)) 但它不起作用。

gene_value_1 = random.uniform(0, 1)
gene_value_2 = random.uniform(0, 1)
if(abs(gene_value_1)**2 + abs(gene_value_2)**2) == 1:
print(added)

我想生成两个随机数,它们的平方和几乎等于 1。

最佳答案

您的要求并不是真正针对两个不同的数字。它适用于平方和等于 1 的一对数字。

如果 x**2 + y**2 = 1,则 y 完全由 x 决定:y =平方根(1 - x**2):

gene_value_1 = random.uniform(0, 1)
gene_value_2 = math.sqrt(1.0 - gene_value_1**2)

正如问题和这个答案的评论中提到的,以这种方式获得的分布对于两个数字是不均匀的。由于 gene_value_1gene_value_2 会在统一情况下描述笛卡尔空间中的单位圆,您可以这样做

angle = random.uniform(0, 2 * math.pi)
gene_value_1 = math.cos(angle)
gene_value_2 = math.sin(angle)

关于python - 生成两个平方和==1的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56047264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com