Questions tagged «random»

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

14
数组中的加权随机选择
我想从数组中随机选择一个元素,但是每个元素都有一个已知的选择概率。 (在数组中)所有机会的总和为1。 您会建议哪种算法最快,最适合进行大量计算? 例: id => chance array[ 0 => 0.8 1 => 0.2 ] 对于此伪代码,所讨论的算法应在多个调用上统计地返回id上的四个元素,以id上0的一个元素1。

4
Python的随机性
我正在使用Python使用虚线为点画生成图像。破折号的周期是恒定的,改变的是破折号/空间比。这将产生如下内容: 但是,在该图像中,虚线具有统一的原点,这会产生难看的垂直装订线。因此,我尝试将原点随机化以去除排水沟。这种工作,但有一个明显的模式: 我想知道这是从哪里来的,所以我制作了一个非常简单的测试用例,用堆叠的虚线表示: 冲刺率:50% 破折号20px 使用random.uniform(-10.,+10.)(*)(初始值后,原点从-10px变为+ 10pxrandom.seed() 并增加了随机性: 因此仍然存在模式。我不明白的是,要获得可见的装订线,您需要使6个或7个连续值落入同一范围内(例如,总范围的一半),这应该是1/64的概率,但是似乎发生了很多通常会在200行中生成。 我误会了吗?只是我们的人类大脑正在看到没有模式的模式吗?是否有更好的方法来生成更“视觉上随机的”东西(python 2.7,最好不安装任何东西)? (*)部分像素在这种情况下有效 附件:我使用的代码(这是一个Gimp脚本): #!/usr/bin/env python # -*- coding: iso-8859-15 -*- # Python script for Gimp (requires Gimp 2.10) # Run on a 400x400 image to see something without having to wait too much # Menu entry is in "Test" submenu …
71 python  random 


7
介于0和1之间的rand()
所以下面的代码使0 <r <1 r = ((double) rand() / (RAND_MAX)) 为什么 r = ((double) rand() / (RAND_MAX + 1))使-1 <r <0? 难道不应该在RAND_MAX中加1使得r <2? 编辑:我收到警告:表达式中的整数溢出 在那条线上,所以可能是问题所在。我刚刚做了cout << r << endl,它的确给了我-1和0之间的值
71 c++  random 

4
在Python中创建随机整数列表
我想创建一个随机的整数列表以进行测试。数字的分布并不重要。唯一要数的是时间。我知道生成随机数是一项耗时的任务,但是必须有更好的方法。 这是我当前的解决方案: import random import timeit # Random lists from [0-999] interval print [random.randint(0, 1000) for r in xrange(10)] # v1 print [random.choice([i for i in xrange(1000)]) for r in xrange(10)] # v2 # Measurement: t1 = timeit.Timer('[random.randint(0, 1000) for r in xrange(10000)]', 'import random') # v1 t2 = timeit.Timer('random.sample(range(1000), …

4
RNGCryptoServiceProvider的优缺点
什么是使用的利弊System.Security.Cryptography.RNGCryptoServiceProviderVS System.Random。我知道这RNGCryptoServiceProvider是“更加随机的”,即对于黑客来说更难以预测。还有其他优点或缺点吗? 更新: 根据回应,以下是目前使用的利弊RNGCryptoServiceProvider: 优点 RNGCryptoServiceProvider 是一个更强的密码随机数,这意味着确定加密密钥等会更好。 缺点 Random更快,因为它是一个更简单的计算;当用于不要求加密随机性的模拟或长时间计算时,应使用此方法。注意:有关模拟的详细信息,请参见Kevin的答案-Random不一定足够随机,您可能要使用其他非加密PRNG。
71 c#  .net  random 

5
为什么使用mingw gcc4.8.1的std :: random_device每次运行都得到相同的序列?
我使用以下代码来测试C ++<random>库。 为什么每次编译的可执行文件都会得到完全相同的序列?是rd()在编译时确定的?每次运行如何获得不同的输出? Windows 7 64位上的GCC 4.8.1。使用http://nuwen.net/mingw.html中的MinGW分发。 编辑:我用Visual Studio测试了相同的代码。没有问题。输出是不确定的。这可能是我使用的mingw gcc 4.8.1中的错误。 #include <iostream> #include <random> using namespace std; int main(){ random_device rd; mt19937 mt(rd()); uniform_int_distribution<int> dist(0,99); for (int i = 0; i< 16; ++i){ cout<<dist(mt)<<" "; } cout <<endl; }
70 c++  c++11  random  stl 

15
PGP:没有足够的随机字节。请做一些其他工作,使操作系统有机会收集更多的熵
设置:虚拟机上的Ubuntu Server,具有6核和3GB RAM。 当我试图生成asymmetric key pair通过GPG这样的gpg --gen-key。我收到以下错误: Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy! 我试着用谷歌搜索一下。这就是我所意识到的,我需要启动另一个终端并输入cat /udev/random->它随机生成一系列随机生成的值以增加熵。 我看不到这里有任何变化 watch cat /proc/sys/kernel/random/entropy_avail 而且仍然会给我同样的错误
70 linux  random  gnupg  entropy 

5
JavaScript表达式可在每种情况下生成5位数字
对于我的硒测试,在每种情况下我都需要一个值提供程序来获取5位数字。javascript的问题在于的apiMath.random仅支持生成0.起始浮点数。因此它必须介于10000和之间99999。 因此,如果它只会生成0.10000更高的值,但也会生成,这将很容易0.01000。因此这种方法不会成功: Math.floor(Math.random()*100000+1) 是否可以在每种情况下(在表达式中)生成5位数字?

10
从集合中选择随机子集的最佳方法?
我在Vector中有一组对象,我想从中选择一个随机子集(例如,返回100个项目;随机选择5个)。在我的第一遍(非常仓促)中,我做了一个非常简单甚至过于聪明的解决方案: Vector itemsVector = getItems(); Collections.shuffle(itemsVector); itemsVector.setSize(5); 尽管这样做的好处是简单易用,但我怀疑它的伸缩性不会很好,即Collections.shuffle()至少必须为O(n)。我不太聪明的选择是 Vector itemsVector = getItems(); Random rand = new Random(System.currentTimeMillis()); // would make this static to the class List subsetList = new ArrayList(5); for (int i = 0; i < 5; i++) { // be sure to use Vector.remove() or you may get …


15
推荐初始化srand的方法?
我需要一种“好的”方式来初始化C ++中的伪随机数生成器。我发现一篇文章指出: 为了生成类似随机数的数字,通常将srand初始化为一些与众不同的值,例如与执行时间相关的值。例如,函数时间(在头文件ctime中声明)返回的值每秒都是不同的,对于大多数随机需求而言,这是足够独特的。 对于我的应用程序而言,Unixtime不够鲜明。有什么更好的初始化方法?如果它是可移植的,则有很多好处,但是代码将主要在Linux主机上运行。 我当时在考虑做一些pid / unixtime数学来获取整数,或者可能从中读取数据/dev/urandom。 谢谢! 编辑 是的,我实际上每秒多次启动我的应用程序,并且遇到了冲突。
68 c++  random  srand 


5
密码安全的随机数生成器如何工作?
我了解标准随机数生成器的工作原理。但是当使用密码术时,随机数确实必须是随机的。 我知道有些仪器可以读取宇宙白噪声以帮助生成安全的哈希,但是您的标准PC却没有。 密码安全的随机数生成器如何获得没有可重复模式的值?

3
我了解/ dev / urandom吗?
我一直在阅读/dev/urandom,据我所知,我/dev/random利用网络数据包定时等事件创建了密码随机数。但是,我是否理解/dev/urandom使用PRNG并从中植入数字的权利/dev/random?还是/dev/random只要有一点就使用它-当它们用完时会回落到PRNG并从哪里收集种子?

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.