问题标签 [uniform-distribution]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 从 [0:n) 中对 k 个整数进行均匀采样
我的目标是从 0, ... n-1 中抽取 k 个整数而不重复。采样整数的顺序无关紧要。在每次调用时(经常发生),n 和 k 会略有不同,但变化不大(n 约为 250,000,k 约为 2,000)。我提出了以下摊销 O(k) 算法:
- 准备一个包含项目 0、1、2、...、n-1 的数组 A。这需要 O(n) 但由于 n 相对稳定,因此可以使成本摊销为常数。
- 从 [0:i] 中采样一个随机数 r,其中 i = n - 1。这里的成本实际上与 n 有关,但由于 n 不是非常大,因此这种依赖性并不重要。
- 交换数组 A 中的第 r 项和第 i 项。
- 将 i 减 1。
- 重复k次步骤2~4;现在我们在 A 的尾部有一个长度为 k 的随机排列。复制这个。
- 我们应该将 A 回滚到其初始状态 (0, ... , n-1) 以保持步骤 1 的成本不变。这可以通过在步骤 2 的每次通过时将 r 推入长度为 k 的堆栈来完成。堆栈的准备需要摊销的恒定成本。
我认为排列/组合的统一采样应该是一个详尽研究的问题,所以要么(1)有一个更好的解决方案,要么至少(2)我的解决方案是一个(小的修改)一个众所周知的解决方案。因此,
- 在情况(1)中,我想知道更好的解决方案。
- 在情况(2)中,我想找到一个参考。
请帮我。谢谢。
java - 在范围内生成具有均匀分布的随机长整数 java.lang.
我需要生成未指定数量的加密安全的多头具有均匀分布并且在给定范围内。这会产生我需要的东西吗:
还有其他更好的方法吗?
statistics - 生成均匀分布(逆变换)
假设我可以从具有可逆 cdf FY 的连续随机变量 Y 生成样本。我想知道 FY (Y )(内部和外部的大写 Y)的分布是什么?
我的主要猜测是均匀分布,但我不确定如何验证我的答案。
java - 将长整数标识符均匀分布到存储桶中
我有大量的长整数标识符,需要尽可能均匀地分布到 (n) 个桶中。长整数标识符可能有一些丢失的标识符。以此为标准,按原样使用长整数和进行模(n)[长整数]之间是否有区别,或者为长整数的字符串版本生成hashCode更好(以改善分布)然后做一个模(n)[字符串的哈希码(长整数)]?通过哈希码获得统一传播是否需要额外的字符串转换?
由于我收到反馈说我的问题没有足够的背景信息。我正在添加更多信息。
标识符基本上是自动递增的数字行标识符,在表示项目 ID 的数据库中自动生成。缺少标识符的原因是由于删除。
标识符本身是长整数。标识符(项目)本身在某些情况下为 (10s-100)+ 百万,在某些情况下为数千。
只有在标识符数以百万计的情况下,我才想真正将它们分散到存储桶(标识符计数 >> 存储桶计数)中,以便存储在非 SQL 系统(分区)中。
我想知道是否因为项目被删除,我是否应该求助于 (Long).toString().hashCode() 来获得统一的传播而不是直接使用长数字。我有一种感觉,做一个 toString.hashCode 不会给我带来太多好处,而且我也不喜欢 java hashCode 不能保证在 java 修订中具有相同值的事实(尽管对于 String 他们的 hashCode 实现似乎有文档且稳定对于过去几年的版本)
matlab - 对于给定方差和matlab中的均值具有均匀分布的数列
我想使用特定方差 (v) 和均值 (m) 的均匀分布生成 n 个点。
我目前正在使用 MATLAB 来完成这项任务。这可以使用正态分布来完成y = v.*randn(n,1) + m;
在 MATLAB 中是否有任何直接的方法可以做到这一点?
python - 在单位圆内均匀采样
我想从 ∥<strong>x∥ ≤ 1 的均匀分布中采样一个二维向量x。我知道我可以从均匀分布中采样为
但是我怎样才能确保 ∥<strong>x∥ ≤ 1?
r - 如何找到均匀分布的 MLE?
我正在尝试使用 R 找到给定均匀分布 X ~ UNIF(1,3) 的最大似然估计量 a_hat 和 b_hat。下面是我的代码及其输出:
最大似然估计
我无法解释为什么我的系数与原始值如此偏离。我很确定我正在使用正确的似然函数来进行均匀分布,但我可能在某个地方的语法也错了。我在用library(bbmle)
c++ - 正确使用时,均匀离散分布(uniform_int_distribution)是否可以生成顺序(或相同)数字?
将我的编辑放在这里:
在评论中,已经讨论了随机性的实际性质。我所理解的是,在生成“随机”数字时,没有任何数字比另一个数字更可能产生。
希望对我的问题更公平的表述是:
如果没有一个数字比另一个数字或多或少,那么,如果数字并不总是均匀分布,为什么均匀分布函数会自称呢?
在我问之前要清楚,我只是出于好奇而问。幸运的是我不是猫。
我为一个大学项目创建了一个快速排序功能,并认为也许(而不是仅仅敲击键盘一会儿)我可以用一些随机生成的整数列表来测试它。
我可以完全依靠这个实现来产生看起来总是随机的(均匀分布)的随机数吗?
你可能会认为我很傻......显然,班级声明它是一个均匀分布,例如,不可能是非均匀分布......但是这些输出中的任何一个甚至可能吗?如果是这样,可能性有多大?
我想最后一个输出比第一个或第二个输出更有可能(尤其是在使用 0 到 100 的范围时),但我的好奇心仍然存在。
我是不是特别傻?我从来都不是很擅长数学,所以,虽然我开始理解符号和术语,但我仍然会看一些解释,只是“呆呆地”,所以到目前为止我的谷歌搜索没有帮助。