如何在Java中创build20个随机字节的数组?
在多个线程之间共享Random类的一个实例是否有效? 并从多个线程中调用nextInt(int) ?
我需要根据一个随机值生成一个唯一的ID。
我有两个不同形状的numpy数组,但长度相同(前导维数)。 我想把它们中的每一个都洗牌,以使相应的元素继续相应 – 即与它们的主要指数相一致地洗牌。 这个代码的作品,并说明了我的目标: def shuffle_in_unison(a, b): assert len(a) == len(b) shuffled_a = numpy.empty(a.shape, dtype=a.dtype) shuffled_b = numpy.empty(b.shape, dtype=b.dtype) permutation = numpy.random.permutation(len(a)) for old_index, new_index in enumerate(permutation): shuffled_a[new_index] = a[old_index] shuffled_b[new_index] = b[old_index] return shuffled_a, shuffled_b 例如: >>> a = numpy.asarray([[1, 1], [2, 2], [3, 3]]) >>> b = numpy.asarray([1, 2, 3]) >>> shuffle_in_unison(a, […]
6年来,我的网站上有一个随机数字生成器页面。 很长一段时间,这是谷歌“随机数字生成器”的第一个或第二个结果,并已被用来决定几十个,即使不是数百个讨论论坛和博客上的比赛和图纸(我知道,因为我看到在我的推荐人networking日志,通常去看看)。 今天有人给我发邮件告诉我可能不像我想象的那样随意。 她尝试生成非常大的随机数(例如,1到10000000000000000000),发现它们几乎总是相同的数字位数。 事实上,我把这个函数封装在一个循环中,所以我可以生成数以千计的数字,对于非常大的数字, 变化只有2个数量级。 为什么? 这里是循环版本,所以你可以自己尝试一下: http://andrew.hedges.name/experiments/random/randomness.html 它包含了一个从Mozilla开发者networking中直接获得的实现,以及一些1997年的代码,我刷掉了一个不再存在的网页(Paul Houle的“Central Randomizer 1.3”)。 查看源代码,了解每种方法的工作原理。 我在这里和其他地方阅读了梅森·费尔斯特。 我感兴趣的是为什么JavaScript内置的Math.random函数的结果不会有更大的变化。 谢谢!
我似乎看到很多答案,其中有人build议使用<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 。 这至less有16位,可能是32.这不足以种子MT的19937位的状态。 使用std::mt19937 gen(rd());gen() (用32位播种并查看第一个输出)不能提供良好的输出分布。 7和13永远不会是第一个输出。 两颗种子产生0.12颗种子产生1226181350.( 链接 ) std::random_device可以是,有时是作为一个简单的PRNG与一个固定的种子实现。 因此,它可能会在每次运行中产生相同的序列。 ( 链接 )这比time(NULL)更差time(NULL) 。 更糟糕的是,复制和粘贴上述代码片段非常容易,尽pipe它们包含的问题。 有些解决scheme需要获取可能不适合每个人的大型 图书馆 。 鉴于此,我的问题是如何简洁,便携地将C ++中的PRNG彻底播种? 鉴于上述问题,一个很好的答案: 必须完全种下mt19937 / mt19937_64。 不能单纯依靠std::random_device或time(NULL)作为熵源。 不应该依靠Boost或其他库文库。 应适合less数几行,以便它看起来很好复制粘贴到一个答案。 思考 我目前的想法是std::random_device输出可以通过time(NULL) ,从地址空间随机化得到的值和一个硬编码的常量(可以在发布期间设置)来混合(也许通过XOR)在熵上尽力而为。 std::random_device::entropy() 并不能很好的说明std::random_device可能做什么或者不可以做什么。
有可能在2个双打之间产生一个随机数字? 例: public double GetRandomeNumber(double minimum, double maximum) { return Random.NextDouble(minimum, maximum) } 然后我用以下方法来调用它: double result = GetRandomNumber(1.23, 5.34); 任何想法将不胜感激。
有谁知道我可以轻松生成随机数在C / C + +的正常分布? http://www.mathworks.com/access/helpdesk/help/toolbox/stats/normrnd.html 我不想使用任何Boost。 我知道Knuth详细地谈了这个,但是我现在没有他的书。
如何在Bash范围内生成一个随机数字?
我正在使用这一行来为node.js生成一个sha1标识符: crypto.createHash('sha1').digest('hex'); 问题是每次都返回相同的ID。 是否有可能让它每次生成一个随机的ID,所以我可以使用它作为数据库文档ID?