python - Python 和 R 编码给出不同的结果
问题描述
我正在将 R 脚本翻译成 Python,但是,我发现 Python 和 R 之间的编码结果不同。
在 R 中:
> digest('0003bf82df1e0255a352b89d431a831d_NA', algo='xxhash32')
[1] "d6865d43"
在 Python 中:
>>> xxhash.xxh32('0003bf82df1e0255a352b89d431a831d_NA').hexdigest()
'3c0493fd
他们都使用相同的算法,并且都使用默认的seed = 0
. 但是为什么会这样呢?
任何帮助,将不胜感激!
解决方案
当在重复实例上传递给相同的随机数生成器时,seed=0 只会给出相同的值流。
将 seed=0 传递给两个不同的随机数生成器将给出不同的值流。
虽然R 的随机数生成器和Python 的随机数生成器在默认情况下都是Mersenne Twister,但其底层实现是明显不同的。
因为随机数生成依赖于一些底层实现,所以 R 甚至在各个版本之间都不一致。Python 在技术上也不是,因为在 Python2.3 之前,它使用了不同的随机数生成器,但所有当前支持的 Python 版本都是一致的。
推荐阅读
- mongodb - mongodb推送到嵌入式数组,文档值
- android - 在Android中将LinearLayout设置为16:9?
- javascript - 如何在带有映射的 React JS 上显示某些数组?
- active-directory - 无法对不受信任的外部林域 Active Directory 进行 LDAPS(636) 调用
- android - Android Media Style 通知不会触发 deleteIntent
- c# - 将对象传递给 MultipartFormDataContent 如何隐式调用 Add 方法?
- amazon-web-services - 来自 dockerized python 应用程序的 AWS SAM 调用 lambdas
- jestjs - 开玩笑 - 模拟 ApolloClient 时出错 - TypeError 不是构造函数
- typescript - 从嵌套路由路由时,nextjs 中的不可预测路由
- vba - 获取 MS 项目名称(非名称)