相关疑难解决方法(0)

将均匀分布转换为正态分布

如何将均匀分布(大多数随机数生成器产生,例如介于0.0和1.0之间)转换为正态分布?如果我想要选择的平均值和标准偏差怎么办?

language-agnostic random algorithm normal-distribution

98
推荐指数
6
解决办法
10万
查看次数

双精度值在[0.0,1.0]范围内的唯一值总数是多少?

Random.NextDouble()(一个从双[0.0,1.0的范围内))有时具有大的Int64相乘(让大的Int64 = 9000000000L),并且将结果地板以获得随机的Int64值比可以从随机获得较大.Next()(范围为[0,Int32.MaxValue)的Int32).

Random r = new Random();
long big = 9000000000L;
long answer = (long) (r.NextDouble() * big);
Run Code Online (Sandbox Code Playgroud)

在我看来,在[0.0,1.0]范围内Double的唯一值的总数提供了它可能生成的唯一Int64的数量的上限.事实上,一个松散的上限,因为许多不同的双打将映射到相同的Int64.

因此,我想知道:在[0.0,1.0]范围内,double的唯一值总数是多少?

如果你可以告诉我"大"可以采取的最大值是什么,以便"回答"可以是范围[0,大]的值,以及"回答"的值的分布是否均匀,假设Random.NextDouble()是统一的.

编辑:Double(double)在这里指的是IEEE 754浮点双精度,而Int64(long)和Int32(int)分别指64位和32位有符号2的补码.


灵感来自这个问题:在java中生成10位唯一随机数

虽然我使用C#,这个问题是语言无关,更多的是离散数学不是编程,但它困扰我不主要是从数学的好奇感,但是从想使用一个公式,只有当它做什么它一个程序员应该从安全角度来做.

language-agnostic random floating-point discrete-mathematics

8
推荐指数
2
解决办法
714
查看次数

在 javascript 中创建一个正态分布模式?

我想通过向它们添加随机性来创建看起来更像手绘线的线条。我目前使用这个公式来修改坐标

x-10+Math.floor(Math.random()*20)
Run Code Online (Sandbox Code Playgroud)

这种随机分布是线性的,我想使用一些使它更有可能击中目标的东西。X根据看起来像但不一定是钟形曲线的东西。如何才能做到这一点?

javascript

1
推荐指数
1
解决办法
2618
查看次数