python中种子数是什么意思_Python shuffle():其种子数的粒度/shuffle()结果多样性...
您可以检查它的功能: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()结果多样性...相关推荐
- python中none算变量吗_在python中对变量判断是否为None的三种方法总结
三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...
- Python中记住过去(模型状态)的五种方法
在Python中记住过去(模型状态)的五种方法 从封闭函数和迭代器到状态机Python库 有人说... "那些不能记住过去的人,注定要重复它".G. Santayana, 1905 ...
- python中变量名后的逗号_Python中逗号的三种作用实例分析
本文实例讲述了Python中逗号的三种作用.分享给大家供大家参考.具体分析如下: 最近研究python 遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说 ...
- python中直方图bins是什么意思_Python 中下划线的 5 种含义都是什么?
亲爱的小伙伴们 咱们8月整月开课计划已出 座位有限 感兴趣的小伙伴赶紧预约啦 建策科技8月开班计划 译者:泰然 https://dbader.org/blog/meaning-of-underscor ...
- python中如何创建一个空列表_Python创建空列表的字典2种方法详解
如果要在 Python 中创建键值是空列表的字典,有多种方法,但是各种方法之间是否由区别?需要作实验验证,并且分析产生的原因.本文针对两种方法做了实验和分析. 如果要在 Python 中创建一个键值都 ...
- python中的df是什么意思_python df遍历的N种方式
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. for-in 迭代循环首先介绍Python中最常用的for-in循环遍历的方式.for-in循环结 ...
- python中如何连接两个字符串_python字符串连接的N种方式总结
python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 st ...
- python中如何连接两个字符串_python中5种连接字符串的方法
字符串是Python中常用的数据类型,在开发过程中可以对字符创进行截取并与其他字符创进行连接.本文为大家介绍了5种连接字符串的方法. 1.加号 如果有其他编程语言开发经验的人,肯定知道很多语言里面是用 ...
- python中有序序列是什么意思_Python中列表是一种有序序列
[简答题]磁盘管理 [简答题]造锍熔炼习题 [填空题]38. 表达式 abs(3+4j) 的值为____________. [单选题]Linux安装过程中的硬盘分区工具是( ). [简答题]shell ...
- python中哪些词是敏感字词_python实现敏感词过滤的几种方法
1.replace过滤 最简单也是最直接的就是直接循环敏感词,然后使用replace过滤关键词,文章和敏感词少的时候还可以,多的时候效率就真的很一般了. 2.使用正则过滤 有两个技术要点, 1.使用P ...
最新文章
- 他们提出了一个大胆的猜想:GWT(深度学习)→通用人工智能
- 又是找 Bug 的一天! | 每日趣闻
- VS.net 2005 试用(1)
- 小学生python-现在连小学生都会Python了吗?
- yii 清除mysql缓存_Yii2开启数据表结构缓存和清除
- django 获取外键对应数据的方式
- 定时器取数据时实时进来的数据_Redis-数据淘汰策略amp;持久化方式(RDB/AOF)amp;Redis与Memcached区别...
- linux mysql 内存监控_MySQL监控性能的一些方法总结
- 专栏 | 是什么成就了中国最具创新力的公司,帮他们的超脑计划孵出阿尔法蛋?...
- LeetCode 386. Lexicographical Numbers
- 打开.pos文件--ProcessOn
- Android登录界面用SharedPreferences实现记住密码功能
- java ffmpeg 视频水印_java 实现视频转换通用工具类:视频加水印-Ffmpeg(五-1)
- mysql查询第10到第20条记录_“取出数据表中第10条到第20条记录”的sql语句+selecttop用法...
- AR家居,随时随地在家“玩装修”!
- 都是was缓存惹的祸
- 微信公众号开发整理(五)--自定义菜单
- React Native 0.44.3 ----------微信h5支付
- Keras框架下的loss损失函数
- 使用SqlConnection.connectionString连接数据库