作者KSJ (阿真)
看板Python
标题Re: [问题] python random 问题
时间Thu Apr 14 17:13:53 2011
※ 引述《jimmylin212 (JimmyG)》之铭言:
想请问在python 的 random 函数里面有没有办法做到以下需求呢
随机在 0至1 中间选取 k 个数,k个数的总和又为 1
如果没有办法的话,有前辈有推荐的演算法嘛?
先谢谢了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.172.91
1F:→ amulet5566:取完再全部用常数scale? 04/14 17:05
同意楼上
像下面这样
import random
def normalized_sample(k):
samples=[]
for i in xrange(k):
samples.append(random.random())
N=sum(samples)
N_samples=[i/N for i in samples]
return N_samples
if __name__ == "__main__":
spam = normalized_sample(20)
print spam
print sum(spam)
会有点误差应该还好
这…应该称它是函式就好…不是演算法
我想你接下来要做的东西比较有可能是演算法
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.63.249
※ 编辑: KSJ 来自: 140.112.63.249 (04/14 17:15)
2F:推 jimmylin212:非常感谢你,我了解一下 04/14 17:51