Questions tagged «random-number-generator»

6
为什么我们不合并随机数生成器?
在许多应用中使用伪随机数生成器。因此人们实施了他们认为很棒的方法,后来才发现它有缺陷。最近,JavaScript随机数生成器发生了这种情况。RandU也早得多。还存在诸如Twister之类的不当初始播种的问题。 我找不到任何人将两个或多个生成器族与通常的xor运算符结合在一起的示例。如果有足够的计算机功能来运行java.SecureRandom或Twister实现之类的东西,为什么人们不将它们结合起来?ISAAC xor XORShift xor RandU应该是一个很好的例子,在这里您可以看到单个发电机的弱点正在被其他发电机减轻。由于内在算法完全不同,因此还应有助于将数字分配到更高的维度。是否有一些不应该将它们结合在一起的基本原则? 如果您要构建一个真正的随机数生成器,人们可能会建议您结合使用两个或多个熵源。我的例子不同吗? 我排除了几个线性反馈移位寄存器来自同一家族的共同示例。

4
从单纯形均匀采样
我正在寻找一种算法来生成N个随机数的数组,这样N个数字的总和为1,所有数字都位于0和1之内。例如,N = 3,即随机点(x,y, z)应位于三角形内: x + y + z = 1 0 < x < 1 0 < y < 1 0 < z < 1 理想情况下,我希望该区域内的每个点都具有相等的概率。如果太难了,我可以放弃要求。谢谢。

11
冯·诺依曼在罪孽中的随机性不再适用吗?
一些小伙子说: 任何试图通过确定性方法生成随机数的人当然都处于犯罪状态。 这总是意味着您不能仅凭计算机生成真正的随机数。他说,当计算机的大小与单个Intel 8080微处理器(约6000个阀)的大小相同时。计算机变得越来越复杂,我相信冯·冯·诺依曼的说法可能不再正确。考虑到仅软件实现的算法是不可能的。它们在物理硬件上运行。真正的随机数生成器及其熵源也由硬件组成。 这个Java片段陷入了循环: file.writeByte((byte) (System.nanoTime() & 0xff)); 可以创建一个我以图像表示的数据文件: 您可以看到结构,但也有很多随机性。有趣的是,此PNG文件的大小为232KB,但包含250,000灰度像素。PNG压缩级别最高。那只是7%的压缩率。相当不可压缩。有趣的是该文件是唯一的。此文件的每一代都是略有不同的模式,并且具有相似的〜7%压缩率。 我强调这一点,因为这对我的论点至关重要。熵约为7位/字节。当然,使用更强大的压缩算法将减少这种情况。但不要减少到0位/字节附近。通过拍摄上面的图像并将其颜色映射表替换为随机的图像,可以产生更好的印象: 大多数结构(在上半部分)消失了,因为它只是具有相似但略有不同值的序列。这是仅通过在多任务操作系统上执行Java程序而创建的真正的熵源吗?不是统一分布的随机数生成器,而是一个的熵源?由在物理硬件上运行的软件构建的熵源,恰好是PC。 补充性 为了确认每个图像都产生新的熵,而没有所有人共有的固定模式,生成了10个连续图像。然后将它们连接起来,并使用我可以编译的最强大的存档器(paq8px)进行压缩。此过程将消除所有通用数据,包括自动关联,仅保留更改/熵。 串联文件被压缩到〜66%,这导致〜5.3位/字节或10.5Mbits /图像的熵率。令人惊讶的熵⌣⌣ \smile 补充2 有负面评论认为我的压缩测试方法的熵是有缺陷的,仅给出了一个松散的上限估计。因此,现在我通过NIST的官方加密熵评估测试SP800-90B_EntropyAssessment运行了级联文件。这与非IID熵测量一样好。这是报告(很抱歉,这个问题越来越长,但是问题很复杂):- Running non-IID tests... Entropic statistic estimates: Most Common Value Estimate = 7.88411 Collision Test Estimate = 6.44961 Markov Test Estimate = 5.61735 Compression Test Estimate = 6.65691 t-Tuple Test Estimate …

9
使用硬币生成均匀分布的随机数
你有一枚硬币。您可以根据需要翻转它多次。 要生成的随机数[R[Rr,使得a≤r&lt;ba≤r&lt;ba \leq r < b,其中。r,a,b∈Z+r,a,b∈Z+r,a,b\in \mathbb{Z}^+ 数字的分配应统一。 如果很容易b − a = 2ñb−a=2ñb -a = 2^n: r = a + binary2dec(flip n times write 0 for heads and 1 for tails) 如果b − a ≠ 2ñb−a≠2ñb-a \neq 2^n怎么办?

6
我们可以使用无理数(如π和e)生成随机数吗?
,和等无理数在小数点后具有唯一且不可重复的序列。如果我们从这样的数字中提取第个数字(其中是调用该方法的次数),并按原样制作一个数字,我们是否不应该得到一个完美的随机数生成器?例如,如果我们使用,和,则第一个数字是123,第二个数字是471,下一个数字是184,依此类推。ππ\piËee2–√2\sqrt{2}ñnnñnn2–√2\sqrt{2}Ëeeππ\pi

3
拒绝采样是获得真正均匀的随机数分布的唯一方法吗?
假设我们有一个随机发生器,在输出范围数[0..R−1][0..R−1][0..R-1]与均匀分布,我们需要的范围内生成随机数[0..N−1][0..N−1][0..N-1] 与均匀分布。 假设N&lt;RN&lt;RN < R并且NNN不能均匀地除以RRR ; 为了获得真正均匀的分布,我们可以使用 拒绝采样方法: 如果kkk是最大整数,则kN&lt;RkN&lt;Rk N < R 在[ 0 .. R − 1 ]中选择一个随机数rrr[0..R−1][0..R−1][0..R-1] 如果r&lt;kNr&lt;kNr < k N则输出,否则继续尝试其他随机数r',r“,...直到满足条件rmodNrmodNr \mod N 拒绝采样是获得真正均匀的离散分布的唯一方法吗? 如果答案是肯定的,为什么? 注意:如果N&gt;RN&gt;RN > R则想法是相同的:在[0..R ^ m-1]中生成随机数r' ,R ^ m&gt; = N,例如r'= R(... R(R r_1 + r_2)...)+ r_m,其中r_i是[0..R-1]范围内的随机数r′r′r'[0..Rm−1],Rm&gt;=N[0..Rm−1],Rm&gt;=N[0..R^m-1], R^m >= Nr′=R(...R(Rr1+r2)...)+rmr′=R(...R(Rr1+r2)...)+rmr' = R(...R(R r_1 + …


4
用有偏向的模子模拟公平的模子
给定一个偏向芯片,如何均匀地生成范围内的随机数?模子面的概率分布是未知的,所知道的是每个面的概率都为非零,并且所有抛出的概率分布都是相同的(特别是,抛出是独立的)。这是带有不公平死亡的公平结果的明显概括。NNN[1,N][1,N][1,N] 用计算机科学的术语来说,我们有一个代表死角的预言片:使得为非零且独立于。我们正在寻找一个确定性算法其通过参数化(即可向呼叫),使得。该算法必须以概率1终止,即概率使得多于到呼叫必须收敛到作为。D:N→[1,N]D:N→[1,N]D : \mathbb{N} \to [1,N]pi=P(D(k)=i)pi=P(D(k)=i)p_i = P(D(k)=i)kkkAAADDDAAADDDP(A()=i)=1/NP(A()=i)=1/NP(A()=i) = 1/N一种一种AññnddD000n → ∞ñ→∞n\to\infty 对于(使用有偏差的硬币模拟硬币翻转产生的公平硬币),有一种众所周知的算法:ñ= 2ñ=2N=2 重复“翻转两次”,直到两次掷出的结果不同((头,尾)或(尾,头))。换句话说,循环直到k = 0 ..∞ķ=0 ..∞k = 0..\inftyd (2 ķ + 1 )≠ d (2 ķ )d(2ķ+1个)≠d(2ķ)D(2k+1) \ne D(2k) 如果最后一对翻转是(头,尾),则返回0,如果是(尾,头),则返回1。换句话说,返回,其中是终止循环的索引。D(2k)D(2k)D(2k)kkk 从有偏的模型制作无偏的骰子的一种简单方法是使用硬币翻转无偏方法来构建一个公平的硬币,并通过拒绝采样来构建一个公平的骰子,如序列无偏中所述。但是,这是否最优(对于概率分布的通用值)? 具体来说,我的问题是:什么是需要的算法最小预期呼叫到Oracle的数量?如果一组可达到的期望值是开放的,那么下界是什么?向该下界收敛的一类算法是什么? 如果不同的算法家族对于不同的概率分布是最优的,那么我们将重点放在几乎公平的骰子上:我正在寻找一种算法或一种算法家族,对于表示。∀i,∣∣pi−1/N∣∣&lt;ϵ∀i,|pi−1/N|&lt;ϵ\forall i, \bigl|p_i - 1/N\bigr| \lt \epsilonϵ&gt;0ϵ&gt;0\epsilon \gt 0


3
多边形中的随机采样
我想在多边形中采样均匀一致的点... 如果采样大量,则如果它们具有相同的面积,它们将很可能落入两个区域。 如果它是一个正方形,这将是非常简单的,因为我将[0,1]中的两个随机数作为我的坐标。 我拥有的形状是规则的多边形,但我希望它适用于任何多边形。 /programming/3058150/how-to-find-a-random-point-in-a-quadrangle
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.