- 区间总数为Total=18
- 将区间划分为三份:T1,T2,T3
-
每个区间都有最小、最大至范围,具体如下:
T1 = [1/18,3/18]
T2 = [10/18,16/18]
T3 = [1/18,5/18]代码如下
def prorate(total):
T1 = random.uniform((total*(1/18.00)),(total*(3/18.00)))
T2 = random.uniform(((total-T1)*(10/18.00)),((total-T1)*(16/18.00)))
T3 = random.uniform(((total-T1-T2)*(1/18.00)),((total-T1-T2)*(5/18.00)))
return T1,T2,T3
这样打印出来的sum=T1+T2+T3,与初始值total误差很大。
请问有没有其他办法能实现这种随机比例划分区间,生成随机数,然后和值固定为total的方法
p1+p3 范围在2/18~8/18
p2 范围在 10/18~16/18