Questions tagged «random»

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

9
如何从枚举中选择随机值?
给定C#中的任意枚举,如何选择随机值? (我没有在SO上找到这个非常基本的问题。我将在一分钟内发布我的答案,以供任何人参考,但请随时发布您自己的答案。)
170 c#  random  enums 

17
如何处理缓慢的SecureRandom生成器?
如果您想要Java中具有加密强度的随机数,请使用SecureRandom。不幸的是,SecureRandom可能会很慢。如果/dev/random在Linux上使用,它将阻止等待足够的熵建立。您如何避免性能下降? 有没有人使用罕见数学作为解决此问题的方法? 有人可以确认在JDK 6中已经解决了此性能问题吗?

8
MD5产生碰撞之前有多少个随机元素?
我在Amazon S3上有一个图像库。对于每个图像,我在服务器上md5源URL加上时间戳以获取唯一的文件名。由于S3不能有子目录,因此我需要将所有这些图像存储在单个平面文件夹中。 我是否需要担心产生的MD5哈希值发生冲突? 好处:在看到MD5产生的哈希值发生冲突之前,我可以拥有多少个文件?
164 random  md5  hash 

2
161803398是“特殊”号码吗?在Math.Random()内部
我怀疑答案是“ 因为数学 ”,但是我希望有人可以在基本层面上提供更多的见解... 今天,我在研究BCL源代码,看看我以前使用的某些类是如何实现的。之前我从未考虑过如何生成(伪)随机数,所以我决定看看它是如何完成的。 此处的完整源代码:http : //referencesource.microsoft.com/#mscorlib/system/random.cs#29 private const int MSEED = 161803398; 每次植入Random()类时都使用此MSEED值。 无论如何,我看到了这个“魔术数字”-161803398-我对为什么选择该数字没有最模糊的主意。它不是素数或2的幂,不是看似重要的数字的“一半”。我用二进制和十六进制格式查看了它,对我来说,它就像是一个数字。 我尝试在Google中搜索该号码,但未找到任何内容。
162 c#  .net  algorithm  random 

14
从枚举中选择一个随机值?
如果我有这样的枚举: public enum Letter { A, B, C, //... } 随机挑选一个的最佳方法是什么?它不需要是生产质量的防弹产品,但是相当均匀的分配将是不错的选择。 我可以做这样的事情 private Letter randomLetter() { int pick = new Random().nextInt(Letter.values().length); return Letter.values()[pick]; } 但是有更好的方法吗?我觉得这已经解决了。
161 java  random  enums 

8
如何正确播种随机数生成器
我正在尝试在Go中生成一个随机字符串,这是我到目前为止编写的代码: package main import ( "bytes" "fmt" "math/rand" "time" ) func main() { fmt.Println(randomString(10)) } func randomString(l int) string { var result bytes.Buffer var temp string for i := 0; i < l; { if string(randInt(65, 90)) != temp { temp = string(randInt(65, 90)) result.WriteString(temp) i++ } } return result.String() …
160 random  go 


13
从范围生成随机整数
我需要一个函数,该函数将在给定范围内(包括边界值)生成一个随机整数。我没有不合理的质量/随机性要求,我有四个要求: 我需要它快。我的项目需要生成数百万(有时甚至数千万)的随机数,而我目前的生成器功能已被证明是瓶颈。 我需要它合理地统一(使用rand()完全可以)。 最小-最大范围可以是<0,1>到<-32727,32727>的任何值。 它必须是可播种的。 我目前有以下C ++代码: output = min + (rand() * (int)(max - min) / RAND_MAX) 问题是,它不是真正统一的-仅当rand()= RAND_MAX时才返回max(对于Visual C ++,它是1/32727)。对于像<-1,1>这样的小范围,这是一个主要问题,在该范围中几乎永远不会返回最后一个值。 所以我拿起笔和纸,想出了以下公式(该公式基于(int)(n + 0.5)整数舍入技巧): 但是它仍然不能给我均匀的分布。重复运行10000个样本后,值-1、0的比例为37:50:13.1。 你能建议更好的配方吗?(甚至整个伪随机数生成器函数)
157 c++  random 

11
在Rails中创建唯一令牌的最佳方法?
这就是我正在使用的。令牌不必一定要猜测,它更像是一个短网址标识符,而不是其他任何东西,我想使其简短。我遵循了一些我在网上找到的示例,如果发生碰撞,我认为下面的代码将重新创建令牌,但是我不确定。不过,我很好奇看到更好的建议,因为这样的感觉有些粗糙。 def self.create_token random_number = SecureRandom.hex(3) "1X#{random_number}" while Tracker.find_by_token("1X#{random_number}") != nil random_number = SecureRandom.hex(3) "1X#{random_number}" end "1X#{random_number}" end 我的令牌数据库列是唯一索引,我也在validates_uniqueness_of :token模型上使用,但是由于这些是根据用户在应用程序中的操作自动创建的(它们实际上是下订单并购买令牌)而批量创建,因此让应用抛出错误是不可行的。 我想,我也可以减少冲突的机会,在末尾附加另一个字符串,这些字符串是基于时间生成的,或者类似的东西,但是我不希望令牌太长。

12
2个双数之间的随机数
是否可以生成2个双精度数之间的随机数? 例: public double GetRandomeNumber(double minimum, double maximum) { return Random.NextDouble(minimum, maximum) } 然后,我将其称为: double result = GetRandomNumber(1.23, 5.34); 任何想法将不胜感激。
156 c#  random 

8
在JAVA中生成UUID字符串的有效方法(不带破折号的UUID.randomUUID()。toString())
我想要一个高效的实用程序来生成唯一的字节序列。UUID是一个很好的候选人,但会UUID.randomUUID().toString()生成类似的东西44e128a5-ac7a-4c9a-be4c-224b6bf81b20,但我更喜欢无破折号的字符串。 我正在寻找一种仅从字母数字字符(无破折号或任何其他特殊符号)生成随机字符串的有效方法。
154 java  random  uuid 

30
需要可预测的随机发生器
我是一名网络游戏开发商,但我遇到了随机数问题。假设一位玩家有20%的机会用剑获得暴击。这意味着5个匹配中有1个至关重要。问题是我在现实生活中的结果非常糟糕-有时玩家在5次点击中获得3分,有时15次点击中没有得分。战斗时间很短(3-10次击中),因此获得良好的随机分布非常重要。 目前,我使用PHP mt_rand(),但是我们只是将代码移至C ++,所以我想在游戏的新引擎中解决此问题。 我不知道解决方案是某种统一的随机生成器,还是想起以前的随机状态来强制正确分配。
151 c++  algorithm  random 

25
ActiveRecord中的随机记录
我需要通过ActiveRecord从表中获取随机记录。我遵循了2006年Jamis Buck的例子。 但是,我也通过Google搜索遇到了另一种方式(由于新用户的限制,无法通过链接添加属性): rand_id = rand(Model.count) rand_record = Model.first(:conditions => ["id >= ?", rand_id]) 我很好奇这里的其他人是如何做到的,或者是否有人知道哪种方法会更有效。


11
如何在C ++中生成随机数?
我正在尝试使用骰子制作游戏,并且需要在其中包含随机数(以模拟骰子的侧面。我知道如何在1到6之间进行游戏)。使用 #include <cstdlib> #include <ctime> #include <iostream> using namespace std; int main() { srand((unsigned)time(0)); int i; i = (rand()%6)+1; cout << i << "\n"; } 效果不是很好,因为当我几次运行程序时,得到的输出是: 6 1 1 1 1 1 2 2 2 2 5 2 所以我想要一个命令,每次都会生成一个不同的随机数,而不是连续5次生成相同的随机数。有命令可以做到这一点吗?
150 c++  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.