gpt4 book ai didi

arrays - 使用最小间隔/分布填充随机数数组?

转载 作者:行者123 更新时间:2023-12-04 18:15:07 25 4
gpt4 key购买 nike

我正在尝试用随机数填充数组,但随机数之间必须有一定的最小距离。

我用 0 - 100 之间的 5 个随机数填充了一个数组:

private var myArray:Array = new Array();

for (var i:uint = 0; i < 5; i++)
myArray.push(Math.round(Math.random() * 100));

接下来我按数字顺序对数组进行了排序:
myArray.sort(Array.NUMERIC);

在填充和排序之后,让我们假设 myArray 现在包含这些值:
26, 27, 42, 92, 97

现在我想要一些或所有的数组值被重置,如果他们需要的话,这样它们至少是最大值(100)的某个百分比(假设是 10%)。

前 2 个值(26 和 27)至少相差 10%,最后 2 个值(92 和 97)也不是。但是,如果我只是将值 27 从 26 移开 10%,以便 27 更改为 37,那么 37 现在与下一个值 42 发生冲突。

填充一组随机数的最佳方法是什么,这些随机数的值将至少相隔一定的百分比,但仍然是随机的。

不言而喻,但我正在寻找一种可移植的解决方案,其中最大值和最小分布百分比可以是任何东西,而不仅仅是我上面的例子。

最佳答案

在您的情况下,您需要 5 个数字,每个数字至少有 10 个。你应该做的是从 0 到 60 创建 5 个数字,对它们进行排序,然后开始添加分隔符。所以如果你的原始列表是 26, 27, 42, 52, 57那么你的新列表是 26, 27+10, 42+20, 52+30, 57+4026, 37, 62, 82, 97 .

这可以推广到任何所需的范围、元素数量和分隔符的大小。如果您希望 n 个元素至少有 d 将它们划分在从 x 到 y 的范围内,则在 (x, y - (n-1)*d) 范围内填充 n 个元素,对它们进行排序,然后开始添加分隔符。

关于arrays - 使用最小间隔/分布填充随机数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com