您可以检查它的功能:def shuffle(self, x, random=None):

"""Shuffle list x in place, and return None.

Optional argument random is a 0-argument function returning a

random float in [0.0, 1.0); if it is the default None, the

standard random.random will be used.

"""

if random is None:

randbelow = self._randbelow

for i in reversed(range(1, len(x))):

# pick an element in x[:i+1] with which to exchange x[i]

j = randbelow(i+1)

x[i], x[j] = x[j], x[i]

else:

_int = int

for i in reversed(range(1, len(x))):

# pick an element in x[:i+1] with which to exchange x[i]

j = _int(random() * (i+1))

x[i], x[j] = x[j], x[i]

else分支在这里应用,尤其是j = _int(random() * (i+1))行。这是经典的Fisher-Yates shuffle

所以随机值的“使用粒度”通常取决于列表的长度,尤其是当前元素的索引。在

哦,顺便说一句:你不是在提供一个种子,而是在提供随机值——最终每个迭代都是一个值。

相反,您可以使用随机值进行一次随机洗牌:

^{pr2}$

或者,您也可以使用seed-s,但实际上它们不应该是介于0和1之间的浮点数,请参阅def seed(self, a=None, version=2):

"""Initialize internal state from hashable object.

None or no argument seeds from current time or from an operating

system specific randomness source if available.

If *a* is an int, all bits are used.

For version 2 (the default), all of the bits are used if *a* is a str,

bytes, or bytearray. For version 1 (provided for reproducing random

sequences from older versions of Python), the algorithm for str and

bytes generates a narrower range of seeds.

"""

if version == 1 and isinstance(a, (str, bytes)):

x = ord(a[0]) << 7 if a else 0

for c in a:

x = ((1000003 * x) ^ ord(c)) & 0xFFFFFFFFFFFFFFFF

x ^= len(a)

a = -2 if x == -1 else x

if version == 2 and isinstance(a, (str, bytes, bytearray)):

if isinstance(a, str):

a = a.encode()

a += _sha512(a).digest()

a = int.from_bytes(a, 'big')

super().seed(a)

self.gauss_next = None

父类(其中a结束,有或没有这些损坏过程)是本机代码:NUMBA_EXPORT_FUNC(PyObject *)

_numba_rnd_seed(PyObject *self, PyObject *args)

{

unsigned int seed;

rnd_state_t *state;

if (!PyArg_ParseTuple(args, "O&I:rnd_seed",

rnd_state_converter, &state, &seed)) {

/* rnd_seed_*(bytes-like object) */

Py_buffer buf;

PyErr_Clear();

if (!PyArg_ParseTuple(args, "O&s*:rnd_seed",

rnd_state_converter, &state, &buf))

return NULL;

if (rnd_seed_with_bytes(state, &buf))

return NULL;

else

Py_RETURN_NONE;

}

else {

/* rnd_seed_*(int32) */

numba_rnd_init(state, seed);

Py_RETURN_NONE;

}

}

甚至可能发生这样的情况:传递一个浮点值会导致在这里运行最后一个分支,在这里使用未初始化的seed值,导致行为一致,这仅仅是因为在调用这个_numba_rnd_seed之前的函数调用使堆栈处于相同的状态。在

python中种子数是什么意思_Python shuffle():其种子数的粒度/shuffle()结果多样性...相关推荐

  1. python中none算变量吗_在python中对变量判断是否为None的三种方法总结

    三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...

  2. Python中记住过去(模型状态)的五种方法

    在Python中记住过去(模型状态)的五种方法 从封闭函数和迭代器到状态机Python库 有人说... "那些不能记住过去的人,注定要重复它".G. Santayana, 1905 ...

  3. python中变量名后的逗号_Python中逗号的三种作用实例分析

    本文实例讲述了Python中逗号的三种作用.分享给大家供大家参考.具体分析如下: 最近研究python  遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说 ...

  4. python中直方图bins是什么意思_Python 中下划线的 5 种含义都是什么?

    亲爱的小伙伴们 咱们8月整月开课计划已出 座位有限 感兴趣的小伙伴赶紧预约啦 建策科技8月开班计划 译者:泰然 https://dbader.org/blog/meaning-of-underscor ...

  5. python中如何创建一个空列表_Python创建空列表的字典2种方法详解

    如果要在 Python 中创建键值是空列表的字典,有多种方法,但是各种方法之间是否由区别?需要作实验验证,并且分析产生的原因.本文针对两种方法做了实验和分析. 如果要在 Python 中创建一个键值都 ...

  6. python中的df是什么意思_python df遍历的N种方式

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. for-in 迭代循环首先介绍Python中最常用的for-in循环遍历的方式.for-in循环结 ...

  7. python中如何连接两个字符串_python字符串连接的N种方式总结

    python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 st ...

  8. python中如何连接两个字符串_python中5种连接字符串的方法

    字符串是Python中常用的数据类型,在开发过程中可以对字符创进行截取并与其他字符创进行连接.本文为大家介绍了5种连接字符串的方法. 1.加号 如果有其他编程语言开发经验的人,肯定知道很多语言里面是用 ...

  9. python中有序序列是什么意思_Python中列表是一种有序序列

    [简答题]磁盘管理 [简答题]造锍熔炼习题 [填空题]38. 表达式 abs(3+4j) 的值为____________. [单选题]Linux安装过程中的硬盘分区工具是( ). [简答题]shell ...

  10. python中哪些词是敏感字词_python实现敏感词过滤的几种方法

    1.replace过滤 最简单也是最直接的就是直接循环敏感词,然后使用replace过滤关键词,文章和敏感词少的时候还可以,多的时候效率就真的很一般了. 2.使用正则过滤 有两个技术要点, 1.使用P ...

最新文章

  1. 他们提出了一个大胆的猜想:GWT(深度学习)→通用人工智能
  2. 又是找 Bug 的一天! | 每日趣闻
  3. VS.net 2005 试用(1)
  4. 小学生python-现在连小学生都会Python了吗?
  5. yii 清除mysql缓存_Yii2开启数据表结构缓存和清除
  6. django 获取外键对应数据的方式
  7. 定时器取数据时实时进来的数据_Redis-数据淘汰策略amp;持久化方式(RDB/AOF)amp;Redis与Memcached区别...
  8. linux mysql 内存监控_MySQL监控性能的一些方法总结
  9. 专栏 | 是什么成就了中国最具创新力的公司,帮他们的超脑计划孵出阿尔法蛋?...
  10. LeetCode 386. Lexicographical Numbers
  11. 打开.pos文件--ProcessOn
  12. Android登录界面用SharedPreferences实现记住密码功能
  13. java ffmpeg 视频水印_java 实现视频转换通用工具类:视频加水印-Ffmpeg(五-1)
  14. mysql查询第10到第20条记录_“取出数据表中第10条到第20条记录”的sql语句+selecttop用法...
  15. AR家居,随时随地在家“玩装修”!
  16. 都是was缓存惹的祸
  17. 微信公众号开发整理(五)--自定义菜单
  18. React Native 0.44.3 ----------微信h5支付
  19. Keras框架下的loss损失函数
  20. 使用SqlConnection.connectionString连接数据库

热门文章

  1. 像花椒,映客,来疯这种直播app,技术实现难度在哪?需要什么样技术人才,还有就是服务器带宽要求及成本?
  2. 中国国道详细资料,里程!
  3. 区块链游戏有哪些,2018最值得关注的十大区块链游戏
  4. 点击导航高亮 html,jQuery实现的导航条点击后高亮显示功能示例
  5. Java 操纵 Excel 文件数据实现复杂的项目需求
  6. 英语中的年份、日期、时间与数字的读法
  7. 前端经典面经--助你金九银十面试无忧
  8. 纪念伟大的数学思想家冯.纽曼逝世60周年
  9. 面试题总结:Mybatis 标签
  10. 【JS】jQuery+Ajax从放弃到知根知底,笔记