Questions tagged «random»

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

7
JS生成随机布尔值
简单的问题,但我对这里的细微差别感兴趣。 我使用自己想到的以下方法生成随机布尔值: const rand = Boolean(Math.round(Math.random())); 每当random()出现时,似乎总会有一个陷阱–它不是真正的随机性,它受到某种或其他因素的损害,等等。所以,我想知道: a)以上是最佳做法吗? b)我在想什么吗? c)我在想什么吗? d)有我不知道的更好/更快/更优雅的方式吗? (如果B和C是互斥的,也有些兴趣。) 更新资料 如果有什么不同,我正在使用它来移动AI角色。

14
Rails 3:获取随机记录
因此,我找到了一些在Rails 2中查找随机记录的示例-首选方法似乎是: Thing.find :first, :offset => rand(Thing.count) 作为新手,我不确定如何在Rails 3中使用新的find语法来构造它。 那么,查找随机记录的“路轨3种方式”是什么?

13
生成具有给定(数字)分布的随机数
我有一个具有不同值的概率的文件,例如: 1 0.1 2 0.05 3 0.05 4 0.2 5 0.4 6 0.2 我想使用此分布生成随机数。是否存在处理此问题的现有模块?自己编写代码是很简单的(构建累积密度函数,生成随机值[0,1]并选择相应的值),但这似乎是一个常见问题,可能有人为它创建了一个函数/模块它。 我需要这个,因为我想生成一个生日列表(不遵循标准random模块中的任何分布)。
132 python  module  random 

3
加载的骰子的数据结构?
假设我有一个n面加载的模具,其中每边k 滚动时都有几率p k上升。我很好奇是否有一个好的算法可以静态地存储此信息(即固定的概率集),以便我可以有效地模拟骰子的随机滚动。 目前,我有一个O(lg n)解决方案。这个想法是存储所有k的前k个边的累积概率表,它们生成[0,1)范围内的随机实数,并对该表执行二进制搜索以获取其累加最大索引。值不大于所选值。我更喜欢这种解决方案,但是运行时没有考虑到这些可能性似乎很奇怪。特别是,在极端情况下,一侧总是出现或值均匀分布,尽管我的解决方案仍将采用对数步的许多方法,但可以通过朴素的方法在O(1)中生成滚动结果。 有人对运行时以某种“自适应”方式解决此问题有任何建议吗? 编辑:基于对这个问题的回答,我写了一篇文章,描述了解决这个问题的许多方法以及它们的分析。看起来Vose对别名方法的实现为每个模具辊提供了Θ(n)预处理时间和O(1)时间,这确实令人印象深刻。希望这是对答案中包含的信息的有用补充!


4
从列表中随机选择50个项目写入文件
到目前为止,我已经弄清楚了如何导入文件,创建新文件以及使列表随机化。 我在从列表中随机选择50个项目以写入文件时遇到麻烦吗? def randomizer(input,output1='random_1.txt',output2='random_2.txt',output3='random_3.txt',output4='random_total.txt'): #Input file query=open(input,'r').read().split() dir,file=os.path.split(input) temp1 = os.path.join(dir,output1) temp2 = os.path.join(dir,output2) temp3 = os.path.join(dir,output3) temp4 = os.path.join(dir,output4) out_file4=open(temp4,'w') random.shuffle(query) for item in query: out_file4.write(item+'\n') 因此,如果总随机文件为 example: random_total = ['9','2','3','1','5','6','8','7','0','4'] 我想要3个文件(out_file1 | 2 | 3),其中第一个随机集为3,第二个随机集为3,第三个随机集为3(对于此示例,但我要创建的文件应该有50个) random_1 = ['9','2','3'] random_2 = ['1','5','6'] random_3 = ['8','7','0'] 因此,不会包含最后一个“ 4”,这很好。 如何从随机选择的列表中选择50? 更好的是,如何从原始列表中随机选择50个?
129 python  file  list  select  random 


12
使用JavaScript Array.sort()方法进行改组是否正确?
我正在用他的JavaScript代码帮助某人,而我的眼睛被一段看起来像这样的部分所吸引: function randOrd(){ return (Math.round(Math.random())-0.5); } coords.sort(randOrd); alert(coords); 我的第一个想法是:嘿,这可能行不通!但是后来我做了一些实验,发现它确实至少提供了很好的随机结果。 然后,我进行了一些网络搜索,几乎在顶部找到了一篇文章,该文章是最不经意地被复制的。看起来像一个非常受人尊敬的网站和作者。 但是我的直觉告诉我,这一定是错误的。特别是由于ECMA标准未指定排序算法。我认为不同的排序算法将导致不同的不均匀混洗。一些排序算法甚至可能无限循环... 但是你觉得呢? 还有另一个问题……我现在将如何去衡量这种混洗技术的结果有多随机? 更新:我做了一些测量,并将结果发布在下面作为答案之一。


3
1.0是std :: generate_canonical的有效输出吗?
我一直认为随机数在0到1之间,而没有1,即它们是半开区间[0,1)中的数字。cppreference.com上的文件std::generate_canonical证实了这一点。 但是,当我运行以下程序时: #include <iostream> #include <limits> #include <random> int main() { std::mt19937 rng; std::seed_seq sequence{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; rng.seed(sequence); rng.discard(12 * 629143 + 6); float random = std::generate_canonical<float, std::numeric_limits<float>::digits>(rng); if (random == 1.0f) { std::cout << "Bug!\n"; } return 0; } 它给了我以下输出: Bug! 即,它为我提供了一个完美的解决方案1,这会导致我的MC集成出现问题。那是有效的行为还是我这边有错误?这将提供与G …
124 c++  c++11  random 


7
从sqlite表中选择随机行
我有一个sqlite具有以下架构的表: CREATE TABLE foo (bar VARCHAR) 我正在使用此表作为字符串列表的存储。 如何从此表中选择随机行?
119 sqlite  random  row 


9
JavaScript的Math.random有多随机?
六年来,我在网站上拥有一个随机数生成器页面。长期以来,它是Google在“随机数生成器”上的第一个或第二个结果,已被用于决定数十个(甚至数百个)讨论论坛和博客上的竞赛和绘图(我知道,因为我在我的网站上看到了引荐来源网络日志,通常可以去看看)。 今天,有人给我发电子邮件告诉我,这可能不像我想的那么随意。她尝试生成非常大的随机数(例如1到10000000000000000000之间),发现它们几乎总是相同的数字。的确,我将函数包装在一个循环中,这样我可以生成数千个数字,并且可以肯定的是,对于非常大的数字,变化仅约为2个数量级。 为什么? 这是循环版本,因此您可以自己尝试一下: http://andrew.hedges.name/experiments/random/randomness.html 它既包含来自Mozilla开发人员网络的直接实现,也包含1997年的一些代码,这些代码我从一个不存在的网页上擦掉(Paul Houle的“中央随机化器1.3”)。查看源代码以了解每种方法的工作原理。 我读过这里和其他地方的约赛特旋转。我感兴趣的是,为什么JavaScript的内置Math.random函数的结果不会有更大的变化。谢谢!
116 javascript  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.