草庐IT

python - 随机数生成中的近种子可能会给出相似的随机数吗?

我在模拟中使用顺序种子(1,2,3,4,...)生成随机数。种子彼此靠近这一事实是否也使生成的伪随机数也相似?我认为它不会改变任何东西,但我正在使用python编辑:我做了一些测试,数字看起来并不相似。不过光看数字恐怕是看不出相似度的。有没有随机数生成的理论特性保证不同的种子给出完全独立的伪随机数? 最佳答案 根据定义,种子和生成的随机数之间肯定存在相关性。问题是随机化算法是否足以产生似乎不相关的结果,您应该研究评估随机性的方法来回答这个问题。不过你的担心是对的。以下是Microsoft的C++rand函数的结果,种子值为0到9:3

python - PySpark 中的随机数生成

让我们从一个总是返回随机整数的简单函数开始:importnumpyasnpdeff(x):returnnp.random.randint(1000)和一个用0填充并使用f映射的RDD:rdd=sc.parallelize([0]*10).map(f)由于上面的RDD没有持久化,我希望每次收集时我都会得到不同的输出:>rdd.collect()[255,512,512,512,255,512,255,512,512,255]如果我们忽略值的分布看起来并不是真正随机的事实,它或多或少会发生这种情况。当我们只取第一个元素时,问题就开始了:assertlen(set(rdd.first()fo

c++ - C++随机数生成与Python的区别

我正在尝试将一些Python代码翻译成C++。代码的作用是运行蒙特卡洛模拟。我认为Python和C++的结果可能非常接近,但似乎发生了一些有趣的事情。这是我在Python中所做的:self.__length=100self.__monte_carlo_array=np.random.uniform(0.0,1.0,self.__length)这是我在C++中所做的:intlength=100;std::random_devicerd;std::mt19937_64mt(rd());std::uniform_real_distributiondistribution(0,1);for(i

python - 是否存在服从本福德定律的随机数分布?

Python有很多方法可以生成不同分布的随机数,请参阅documentationfortherandommodule.不幸的是,如果没有适当的数学背景,尤其是考虑到所需的参数,它们并不是很容易理解。我想知道这些方法中的任何一种是否能够生成服从Benford'sLaw分布的随机数,以及哪些参数值是合适的。也就是说,对于整数群体,这些整数在大约30%的时间应该以“1”开头,在大约18%的时间以“2”开头,等等。使用JohnDvorak'sanswer,我将以下代码放在一起,它似乎运行良好。defbenfords_range_gen(stop,n):"""Ageneratorthatretu

python - 带有python随机数的大数组

我需要生成一个带有随机数(10⁵个数)的大数组(或列表)。我是这样尝试的:vet=random.sample(range(10),100000)但是当我尝试运行时:vet=random.sample(range(10),10000)示例中的文件“/usr/lib/python2.7/random.py”,第320行raiseValueError("样本大于总体")ValueError:样本大于总体有什么解决办法吗?tkns 最佳答案 你想要的是[random.random()for_inxrange(100000)]来自random

python - 生成三个不同的随机数

这个问题在这里已经有了答案:HowdoIcreatealistofrandomnumberswithoutduplicates(21个回答)关闭6年前。我这里有一些东西,但我无法让它按照我喜欢的方式工作:defnested_loops():importrandomoption1=random.randint(1,3)option2=random.randint(1,3)option3=random.randint(1,3)上面的位生成数字,但它们可能相同。下面的代码应该可以解决这个问题,但事实并非如此,但它似乎只是降低了可能性:whileoption1==option2:option1

python - 在 Python 中生成和使用数百万个随机数的有效方法

我正在从事一个编程项目,该项目涉及在Python中进行一些相当广泛的蒙特卡罗模拟,因此会生成大量随机数。几乎所有这些(如果不是全部的话)都可以由Python的内置随机模块生成。我是一个编码新手,不熟悉高效和低效的做事方式。生成比方说将所有随机数作为一个列表,然后遍历该列表,或者每次调用函数时生成一个新的随机数,这将在一个非常大的循环中更快吗?或者其他一些无疑更聪明的方法? 最佳答案 每次生成一个随机数。由于循环的内部工作只关心单个随机数,因此在循环内生成并使用它。例子:#dothis:importrandomforxinxrange

python - 如何生成不同的随机数?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:pickNitemsatrandom我需要生成1到49之间的6个随机数,但它们不能相同。我知道如何让它们随机,我只是不确定如何确保它们不同。工作表建议显示每个数字并将其设置为零,但我看不出这有什么帮助。非常感谢任何建议。

python - 跨系统和版本的python伪随机数的再现性?

我需要在给定初始参数的情况下生成一个受控的伪随机数序列。为此,我使用标准的python随机生成器,由这个参数作为种子。我想确保我将跨系统(操作系统,还有Python版本)生成相同的序列。总结:python是否确保其伪随机数生成器在实现和版本之间的再现性/可移植性? 最佳答案 不,它没有。randommodule'sdocumentation中没有这样的promise.文档中包含的是这条评论:Changedinversion2.3:MersenneTwisterreplacedWichmann-Hillasthedefaultgene

python - 生成复制任意分布的随机数

我有数据,其中我有一个变量z,它包含大约4000个值(从0.0到1.0),其直方图如下所示。现在我需要生成一个随机变量,将其命名为random_z,它应该复制上述分布。到目前为止,我所尝试的是生成一个以1.0为中心的正态分布,这样我就可以删除所有高于1.0的正态分布以获得相似的分布。我一直在使用numpy.random.normal但问题是我无法将范围设置为0.0到1.0,因为通常正态分布的均值=0.0和标准偏差=1.0。有没有另一种方法可以在Python中生成这个分布? 最佳答案 如果你想引导你可以在你观察到的系列上使用rando