【发布时间】:2015-06-30 12:56:35
【问题描述】:
我有一个数组,我想从该数组中“随机”选择一些东西,但我希望它获得集群的概率更高。
例如:
arr = [1, 3, 4, 6, 7, 9, 10]
x = Math.random() * arr.length;
return arr[x]
如果x 的结果为 3,则该函数将返回 6。如何增加下一个数字 x 为 2 或 4 的可能性(然后是 1 和 5,依此类推,与离当前x 越远的概率弯曲)。这可行吗?
【问题讨论】:
-
对于您描述的模式,看起来您根本不希望它们是随机的。当然,这是可行的,但请尝试在此处阐明您真正想要完成的任务。
-
你想增加相似度还是强制选择 2 或 4?
-
Math.random()返回一个介于 0 和 1 之间的双精度值(注意Math.random(),而不是Math.rand())(包括 0,不包括 1)。如果你想返回一个介于 0 和arr.length之间的整数,你需要写 x = Math.random() * arr.length; -
@Onheiron 只是增加可能性。
-
你需要决定你想要什么样的分布。
标签: java random probability