1

Python Numpy 用来生成随机数的算法是什么?更具体地说,我们调用时使用的算法是什么

np.random.uniform() 

是否Linear congruential generator使用了随机生成技术?当我们输入时会发生什么

np.random.seed(42)

为什么像 42 这样的数字更受欢迎np.random.seed

4

1 回答 1

3
  1. Numpy 使用Mersenne Twister(与 cpythonrandom模块一样)。
  2. 当您为随机数生成器播种时,您正在选择其当前状态(PRNG 根据其当前状态选择其下一个状态,并根据其当前状态选择其当前值。其他一些 PRNG 只需使用恒等函数来生成一个国家的价值)。
  3. 种子的选择并不重要,只是它在多次运行中是相同的以确保可重复性。42任何时候需要选择任意数字时,通常都会选择该数字,尤其是在书呆子社交圈中,因为根据一本流行书籍,它的位置是“生命、宇宙和一切的答案”。其他小的、令人难忘的数字也经常被选作种子。
  4. 编辑:可重复性不是种子选择的唯一目标(例如,在加密设置中,您经常想要与此相反的东西——每台机器都使用独立的种子进行初始化,并且某些 PRNG 的质量取决于种子选择),但是在将弱 PRNG 用于科学目的的情况下——比如在 numpy 中——主要目标几乎总是可重复性。
于 2019-07-25T19:21:40.017 回答