我有一个可以是任何大小的数组,我对固定数量的元素感兴趣,但是均匀分布。所以说我想要1000个元素。如果数组中有1000个或更少的元素,我想要它们全部,所以这很容易。如果数组中有2000个元素,我会想要每一个元素。 3000个元素,我想要每三个......等等。
我在实施这个时遇到了麻烦。我想过使用modulo,这适用于圆形数字。例如2000/1000 = 2所以这里有一个简单的if (n % 2 == 0)
(所以跳过它评估为true的每个元素)。同样地,1200:超出200,所以1200/200 = 6,所以if (n % 6 == 0)
也可以。
然而,当元素数量除以超出数量时,它会分解:
要素= 2788
限制= 1000
因子= 2788 /(2788 - 1000)= 1.559288
这里模运算符不起作用,因为n % 1.55928
永远不会给出余数为零。有谁知道如何实现这一目标?我正在使用JavaScript。
谢谢!
答案 0 :(得分:0)
你想要的是一个统一的离散分布。由于元素的数量不能被限制整除,因此您需要在限制中保持一定的灵活性以保持其均匀分布。为此,您可以在元素/限制间隔中执行采样,将结果四舍五入到最接近的整数。
如果你的限制很灵活,你可以通过找到最大可能限制(在这种情况下,697)来覆盖更多地方。