Questions tagged «random»

该标签用于与随机数及其生成器有关的问题,无论是伪随机还是真正的随机。

3
随机(Java 7)中的181783497276652981和8682522807148012是什么?
为什么181783497276652981和8682522807148012在选择Random.java? 以下是Java SE JDK 1.7的相关源代码: /** * Creates a new random number generator. This constructor sets * the seed of the random number generator to a value very likely * to be distinct from any other invocation of this constructor. */ public Random() { this(seedUniquifier() ^ System.nanoTime()); } private static …
112 java  random 

8
如何简洁,可移植和彻底播种mt19937 PRNG?
我似乎看到了许多答案,有人建议使用这些答案<random>来生成随机数,通常连同这样的代码一起使用: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); 通常,这会代替某种“邪恶可憎”,例如: srand(time(NULL)); rand()%6; 我们可以批评的理由是旧的方式time(NULL)提供了低熵,time(NULL)是可以预测的,而最终的结果是不均匀的。 但是,所有这一切对于新方法都是正确的:它只是饰面更亮。 rd()返回一个unsigned int。它至少有16位,可能是32位。这不足以使MT的19937位状态成为种子。 使用std::mt19937 gen(rd());gen()(用32位播种并查看第一个输出)不能提供良好的输出分布。7和13永远不会是第一个输出。两颗种子产生0。十二颗种子产生1226181350。(链接) std::random_device可以并且有时被实现为带有固定种子的简单PRNG。因此,每次运行可能会产生相同的序列。(链接)甚至比time(NULL)。 更糟糕的是,尽管存在上述问题,但复制并粘贴上述代码片段非常容易。为此,一些解决方案需要获取可能并不适合每个人的大型 库。 有鉴于此,我的问题是,如何能以C ++简洁,可移植,彻底地植入mt19937 PRNG? 鉴于上述问题,一个好的答案是: 必须完全植入mt19937 / mt19937_64。 不能完全依赖std::random_device或time(NULL)作为熵的来源。 不应该依赖Boost或其他库。 应该放在少量的行中,这样看起来很不错,可以粘贴到答案中。 思想 我目前的想法是,std::random_device可以使用time(NULL),从地址空间随机化派生的值和硬编码的常数(可以在分发期间设置)将的输出(可以通过XOR)进行混搭,以尽力而为。 std::random_device::entropy() 不能很好地说明std::random_device可能做什么或可能不会做什么。
112 c++  c++11  random 


17
如何创建无重复的随机数列表?
我尝试使用random.randint(0, 100),但一些数字相同。有没有一种方法/模块来创建唯一的随机数列表? 注意:以下代码基于答案,并在发布答案后添加。这不是问题的一部分。这是解决方案。 def getScores(): # open files to read and write f1 = open("page.txt", "r"); p1 = open("pgRes.txt", "a"); gScores = []; bScores = []; yScores = []; # run 50 tests of 40 random queries to implement "bootstrapping" method for i in range(50): # get 40 random queries …
110 python  random 

5
为什么rand()%6有偏见?
在阅读如何使用std :: rand时,我在cppreference.com上找到了此代码 int x = 7; while(x > 6) x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased 右边的表达式有什么问题?尝试了一下,它完美地工作。
109 c++  random  std 

11
如何从一定范围内生成随机整数
这是先前发布的问题的后续内容: 如何在C中生成一个随机数? 我希望能够在特定范围内生成一个随机数,例如1到6,以模拟骰子的侧面。 我将如何去做呢?
108 c  random 





2
C ++ 11中的随机数生成:如何生成,它如何工作?[关闭]
在这里很难说出要问什么。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,因此不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 9年前关闭。 最近,我遇到了一种在C ++ 11中生成随机数的新方法,但是无法消化我所读到的论文(该引擎是什么,数学术语就像“ 分布”,“产生的所有整数均可能相等 ”)。 所以任何人都可以解释一下 这些是什么? 他们是什么意思? 怎么产生的? 他们如何工作? 等等 您可以在一个有关随机数生成的常见问题解答中将其全部调用。
102 c++  c++11  random 




7
加权随机数
我正在尝试实现加权随机数。我目前只是把头撞在墙上,无法解决这个问题。 在我的项目(Hold'em手范围,主观全能分析)中,我正在使用Boost的随机函数。因此,假设我要选择1到3之间的一个随机数(所以选择1、2或3)。Boost的mersenne扭曲生成器为此发挥了魅力。但是,我希望例如这样对选秀权进行加权: 1 (weight: 90) 2 (weight: 56) 3 (weight: 4) Boost是否为此具有某种功能?
101 c++  boost  random 

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.