我想生成1000种气体混合物,其中有三种组分,有一个确定的范围。每种混合物的总和应为100。我不知道如何使用for循环来关联组件。你知道吗
import numpy as np
comp_list = []
c1 = np.arange(80,100, 0.001)
c2 = np.arange(0,14,0.001)
c3 = np.arange(0,4, 0.001)
for i in range(10000):
comp_sum = c1[i] + c2[i] +c3[i]
if comp_sum == 100:
comp_list.append(c1[i], c2[i],c3[i])
print comp_list
您可以通过使用列表理解来使用直接方法:
你可以用
证明:
您必须稍微考虑一下参数的选择,以获得大约1000个样本,因为对于每个
c1
,您将有不同数量的c2
。然而,这将产生一组大致一致的浓度,您可能只需要在c=100
情况下小心(我没有)。你知道吗正如@AndrasDeak在评论中所建议的,你可以简单地做一个
c3 = 100 - c1 - c2
来确保一些结果样本能够满足你的约束,然后从结果中提取多达1000个样本,一种方法是:这当然不是最有效的方法,但是对于简单的用例,它可以实现您想要的。你知道吗
相关问题 更多 >
编程相关推荐