问题标签 [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.

0 投票
2 回答
6823 浏览

c - 在 C 中生成一个随机的、均匀分布的实数

我想在区间 [0,1] 中生成一个随机的实数。我想为n数字设置一个指针,比如说,所以每当我说的时候n,它都会被引用到随机生成的数字。

我在 StackOverflow 和 Google 上搜索过,但其中大多数是针对 C++ 或整数的。

我已经尝试过在答案中向我建议的代码:

但是,我只能得到一个值 0.00000000。

我怎样才能修复我的程序?

0 投票
2 回答
678 浏览

random - 现实世界中的随机数是否服从均匀分布

我对均匀分布和随机数的概念感到困惑。随机数服从均匀分布还是随机数不服从任何分布?

0 投票
1 回答
229 浏览

c++ - 减少每次传递的随机均匀 int 分布

处理一个块大小为 256 个元素的类。每次在我存储任何东西之前调用我的 add 函数;我想在 [0,255] 范围内生成一个统一的随机整数。我想做的是在此函数完成之前跟踪使用的先前值,以便下次通过该函数时,统一随机 int 分布将自动跳过这些值,而不必检查那里是否已经包含某些内容.

是否可以在我的情况 [0,255] 的指定范围内确定一个值,其中在每个连续调用中确定另一个以前没有使用均匀随机 int 分布选择的随机值?如果是这样,这将如何完成?

编辑

在考虑了下面的一些评论之后,他们提出了一个很好的观点。在我的情况下,真正需要的是一组 256 个唯一键值,范围从 0 到 255,它们需要随机打乱或打乱。我会考虑如何尝试实现这一点,但如果有人愿意得到一个很好的例子,那是可以接受的。我不介意投入工作,但有时当我到达一个我似乎无法超越的点并且我开始在这上面花费太多时间时,我只想超越那个点以便我可以移动上。

0 投票
2 回答
782 浏览

c++ - “最小到最大”的均匀真实分布会产生 Inf、-Inf 还是 NaN?

如果我要以下列方式产生浮点值:

有没有可能我会得到一个NaN, Inf, 或-Inf

0 投票
0 回答
344 浏览

matlab - 为什么 Matlab 的 unifrnd(a,b) 这么慢?

我在运行带有拒绝采样的 Gibbs 采样器的 Matlab 和 Julia(使用 tic、toc 命令)之间进行了简单的速度比较。对于 Matlab,我运行了两个不同版本的代码。一个是使用内置的 unifrnd(a,b) 而另一个是通过调用以下函数在区间 (a,b) 中绘制均匀随机数:

我在 Julia 代码中使用了与上面相同的函数。

以 1000000 次迭代运行代码的结果如下:

案例 1:使用 unifrnd(a,b) 的 Matlab:

x_bar = 1.0944

y_bar = 1.1426

经过的时间是 255.201619 秒。

案例 2:Matlab 调用 rand_uniform(a,b) (上面的函数):

x_bar =1.0947

y_bar =1.1429

经过的时间是 38.704601 秒。

案例 3:Julia 调用 rand_uniform(a,b)(上面的函数):

x_bar = 1.0951446303536603

y_bar = 1.142634615899686

经过时间:3.563854193 秒

显然使用 unifrnd(a,b) 会大大降低 Matlab 代码的速度,但问题是为什么?密度取自社会科学家应用贝叶斯统计和估计简介中的一个示例,如果有人对理论平均值感兴趣,mu_x = 1.095 而 mu_y = 1.143。

案例1:使用内置unifrnd(a,b)的Matlab代码为:

案例 2:调用 rand_uniform(a,b) 的 Matlab 代码(上面的函数):

案例 3:调用 rand_uniform(a,b) 的 Julia 代码(上面的函数):

0 投票
3 回答
2402 浏览

r - R中均匀分布的随机子样本

我有一个包含植被指数 (VI) 观察结果的大型数据集。我正在使用 R 对数据进行随机子采样,同时保持分布(相对频率)均匀(在整个 VI 范围内的观察量相等)。我无法得到相当均匀的分布。

例子:

0 投票
5 回答
2849 浏览

java - 随机数的分布

我有两种代码选择:

选项1

或者:

选项 2

我明白这option 2更惯用。我想知道option 1.

option 1我只会使用给定种子生成的第一个数字。在option 2我选择一个种子并n使用该种子生成数字。IIUC 对随机性的保证就在这个用例上。

因此,我的问题是,如果我option 1多次调用,是否可以保证输出分布的均匀性?

0 投票
1 回答
6842 浏览

c++ - std::random_device 和 std::mt19937 是否遵循均匀分布?

我正在尝试在 C++ 中转换这行 matlab:rp = randperm(p);

按照randperm 文档

randperm 使用与 rand 相同的随机数生成器

rand 页面中:

rand 返回单个均匀分布的随机数

所以rand遵循均匀分布。我的 C++ 代码基于:

我的问题是:上面的代码遵循均匀分布?如果没有,该怎么做?

0 投票
1 回答
499 浏览

algorithm - 近线性时间内均匀分布的随机拓扑排序

我想要一种拓扑排序算法,它每次都不会提供相同的排序,而是随机排序,每次排序对所有其他排序都同样可能。

生成所有可能的拓扑排序并随机选择一个是正确的,但是太慢了。生成所有排列和过滤无效的拓扑排序也很慢;如果树/森林足够宽,第一个会退化为第二个。

将新节点插入要检查的节点队列中的随机位置似乎会产生有偏差的结果,并将其放在最后并进行fisher-yates shuffle似乎也有偏差,因为两者都没有考虑到节点“隐藏”在每个节点下,即有多少节点依赖a或被b调度。a可以没有孩子,而b拥有树的其余部分。

如何在接近线性的时间内生成随机拓扑排序,每个有效排序的可能性相同?

0 投票
2 回答
3645 浏览

swift - Swift - 播种 arc4random_uniform?还是替代方案?

让我首先说明我要完成的工作:

  1. 我需要在一个范围内随机生成一组数字
  2. 我希望这些数字有点均匀分布
  3. 我需要能够为随机数生成播种,以便在给定种子的情况下,生成的随机数将始终相同。

在对 drand48()、rand() 和 arc4random() 进行了大量试验之后,我目前决定使用 rand() 来获取随机数,并使用 srand() 来播种。这是一个从我正在做的事情中简化的小例子:

这行得通。给定相同的种子,会产生相同的随机数。执行多个 randomNumber 计算会产生多个不同的随机数。通过 srand 重新播种重新开始“随机性”。

唯一的缺点是 rand() 不是均匀分布的。事实上,我几乎总是得到一组在大多数情况下线性增加的数字。

听起来 arc4random_uniform 会生成更多的均匀随机输出,但是根据我的研究,不可能播种 arc4random,因为它在第一次被调用时播种,并且不一定“设计”为在外部播种。

所以我的问题;有没有更好的替代 srand() / rand() 仍然可以为给定种子提供相同的输出,但这些输出更均匀分布?

谢谢, - 亚当