先上一段熟悉的代码:

import numpy as np
num=0
while(num<5):np.random.seed(1)print(np.random.random())num+=1print('-------------------------')num1=0
np.random.seed(2)
while(num1<5):print(np.random.random())num1+=1

运行结果:

0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
---------------------
0.43599490214200376
0.025926231827891333
0.5496624778787091
0.4353223926182769
0.42036780208748903

众所周知,所谓随机数其实是伪随机数,所谓的‘伪’,意思是这些数其实是有规律的,只不过因为算法规律太复杂,很难看出来。

所谓巧妇难为无米之炊,再厉害的算法,没有一个初始值,它也不可能凭空造出一系列随机数来,诶,我们说的种子就是这个初始值。

random随机数是这样生成的:我们将这套复杂的算法(是叫随机数生成器吧)看成一个黑盒,把我们准备好的种子扔进去,它会返给你两个东西,一个是你想要的随机数,另一个是保证能生成下一个随机数的新的种子,把新的种子放进黑盒,又得到一个新的随机数和一个新的种子,从此在生成随机数的路上越走越远。

好了,回头看看我们的代码:

第一段代码把对种子的设置放在了循环里面,每次执行循环都旗帜鲜明地告诉黑盒:“我的种子是1”。那么很显然:同一个黑盒,同一个种子,自然得到的是同一个随机数。

第二段代码把对种子的设置放在了循环外面,他只在第一次循环的时候明确地告诉黑盒:“我的种子是2”。那么也很显然:从第二次循环开始,黑盒用的就是自己生成的新种子了。

多说一句:因为黑盒是始终如一的,所以只要你没改变种子,那么你得到的随机数就不会改变。

没有特殊需求的话,还是老老实实地用Python自动选择的种子吧,省心又省力。

PS:不同于大佬小姥们的谦逊,我真的是地地道道的新手,所以,如果有什么错误,还请见谅,谢谢。

关于随机种子seed()的一点理解相关推荐

  1. 随机种子 seed()到底是怎么回事。

    让我们先来看一段代码,熟悉一下seed()的使用: import numpy as npnum = 0 while (num < 5):np.random.seed(1)print(np.ran ...

  2. python编程中,各种随机种子seed设置总结

    python随机种子seed的作用(强化学习常用到)_汀.的博客-CSDN博客先上代码import mathimport gymfrom gym import spaces, loggerfrom g ...

  3. Pytorch分布式训练/多卡训练(二) —— Data Parallel并行(DDP)(2.2)(代码示例)(BN同步主卡保存梯度累加多卡测试inference随机种子seed)

    DDP的使用非常简单,因为它不需要修改你网络的配置.其精髓只有一句话 model = DistributedDataPrallel(model, device_ids=[local_rank], ou ...

  4. 随机种子 seed()

    先来看一段代码,熟悉一下seed()的使用: import numpy as npnum = 0 while (num < 5):np.random.seed(1)print(np.random ...

  5. tensorflow随机种子seed

    随机种子seed起到固定初始值的作用 import tensorflow as tf# tf.set_random_seed(1) A1 = tf.random_uniform([1]) A2 = t ...

  6. python随机种子seed的作用(强化学习常用到)

    先上代码 import math import gym from gym import spaces, logger from gym.utils import seeding import nump ...

  7. 如何理解“伪随机”以及“随机种子”

    "真随机"与"伪随机" 真随机:就是我们传统意义上理解的"随机",随机事件如今天是否下雨,抛硬币的正反面,家门口的十字路口今天发生车祸等等. ...

  8. linux 系统时间date vcs根据时间产生随机种子

    前言 2023.3.20 首先介绍时间,再介绍如何根据时间产生随机种子 一.date date:用来显示或设定系统的日期与时间 使用方法:date [OPTION]... [+FORMAT] 1.OP ...

  9. 以我的世界视角来理解seed的随机种子

    以我的世界视角理解seed随机种子 你玩过我的世界吗? 如果你的回答是玩过,那么理解seed随机种子就十分简单了 其实seed随机种子就像我的世界生成世界的种子: randn,rand,uniform ...

最新文章

  1. 二级菜单从mysql中取_MyEclipes中如何如何让通过读取Mysql中的数据来实现二级菜单分类...
  2. 在C#里调用C++的dll时需要注意的一些问题转
  3. C#利用反射机制,获取实例的属性和属性值
  4. Spring.NET学习笔记22——整合WCF(应用篇) Level 200
  5. html 文本 多列显示,CSS3文本,字体和多列
  6. Shell脚本 条件
  7. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_13、jar包方式运行web项目文件上传和访问...
  8. kuangbin数学训练1
  9. 解决IDEA 打开Springboot项目提示 Unmapped Spring configuration files found.
  10. Shopee平台不活跃商品清理规则更新
  11. 关于我的 “二进制部署 kubernetes 集群” 的体验
  12. 【Excel VBA】一键取消excel中所有隐藏sheet
  13. web绿色服务器单文件,Web个人临时共享服务器
  14. 联想笔记本系统还原要如何操作
  15. 然而,随着下属人数的增多,下属各自 开始形成自己的权力主体。
  16. android手机电话铃声设置,安卓怎么设置铃声 安卓手机铃声设置教程
  17. python 条形图填充疏密_Python数据分析 4:图表绘制工具Matplotlib
  18. [ Linux ] 查看并修改时区
  19. Git submodule 采坑
  20. 【Python机器学习及实践】进阶篇:模型实用技巧(特征提升)

热门文章

  1. h5画三角形_如何利用css或html5画出一个三角形?两种不同的制作三角形方法(代码实例)...
  2. 输入在第一行中给出一个正整数n(1)。第二行输入n个整数,用空格分开。在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
  3. (OS 10038)在一个非套接字上尝试了一个操作 的解决办法
  4. 为什么Lisp语言如此先进?(译文)
  5. Git 修改 commit author
  6. 给夜神模拟器设置好了代理之后,无法上网了,在设置代理之前都能上网的
  7. Project中最常用的注意点
  8. k8s对外攻击面总结
  9. css实现单边斜切效果
  10. CC2530(SPI)驱动FLASH芯片W25Qxx