【发布时间】:2021-08-27 19:35:44
【问题描述】:
我正在做一个简单的项目,我有这个方法:
public int generatePeople(float luck, int min, int max) {
SecureRandom sr = new SecureRandom();
int people = 0;
// generate random people
return people;
}
我想在最小值和最大值之间生成一定数量的人,但是人数会根据运气变量增加或减少,这应该类似于高斯,但我不知道如何在 Java 上做到这一点.
根据运气的值,区间的中心会有所不同,例如具有luck = 0.5f,它更有可能在(min + max)/2(区间的中心)附近具有值,而具有luck = 0.25f或@ 987654326@ 会将值的中心移动到左侧(min + max)/4 或右侧3*(min+max)/4,这意味着它更有可能从左侧或右侧获取值。
【问题讨论】:
-
depending on the variable luck,它应该如何依赖? -
@IłyaBursov 例如,运气越高,对人的重视程度就越高
-
生成一个0-luck范围内的随机数,然后再生成一个min-max范围内的随机数,然后将它们相加。检查新值是否大于最大值。如果是返回最大值,如果不是返回值
-
luck的值是什么意思?例如。很倒霉,你的意思是你总是得到min,但是luck的值是什么“倒霉”?0?-Infinity?同样,非常好的运气意味着总是得到max,但那是1或100或+Infinity还是别的什么?
标签: java random probability