找回密码
 欢迎注册
查看: 11023|回复: 6

[讨论] Mathematica的HASH没附加参数时是什么算法啊

[复制链接]
发表于 2017-8-21 14:37:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
按帮助给的附加参数,会启动JAVA进程。本来想减少点麻烦就用默认算法,结果碰撞得一塌糊涂。
        "Adler32"        Adler 32 位循环冗余码校验
        "CRC32"        32 位循环冗余码校验
        "MD2"        128 位 MD2 编码
        "MD5"        128 位 MD5 编码
        "SHA"        160 位 SHA-1 编码
        "SHA256"        256 位 SHA 编码
        "SHA384"        384 位 SHA 编码
        "SHA512"        512 位 SHA 编码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-9-28 17:00:56 | 显示全部楼层
关于Hash函数,Mathematica文档没有说明默认的算法是啥。闭源的软件,没有文档明确说明的东西随时都会改动。版本之间不承诺兼容。

至于你说的碰撞的一塌糊涂 可否陈述一下具体的细节。

通过类似
  1. ListPlot[Table[Hash[i], {i, 1000}]]
复制代码
的代码是否能看出问题?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-9-28 17:03:29 | 显示全部楼层
搜了下,stackoverflow的两篇答案,说明这个信息确实是缺失的。
https://stackoverflow.com/questi ... at-mathematica-uses
https://mathematica.stackexchang ... ions-of-mathematica
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2017-9-28 19:28:29 | 显示全部楼层
wayne 发表于 2017-9-28 17:00
关于Hash函数,Mathematica文档没有说明默认的算法是啥。闭源的软件,没有文档明确说明的东西随时都会改动 ...

我要优化一个10G规模的代数式。各个“零件”就想用HASH命名,结果严重错误。排查最后发现是默认Hash的问题,改SHA-1就跑通了。
跑三晚两夜的程序,不想再跑一遍找那十对碰撞的代数式了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-9-28 19:35:10 | 显示全部楼层
zeroieme 发表于 2017-9-28 19:28
我要优化一个10G规模的代数式。各个“零件”就想用HASH命名,结果严重错误。排查最后发现是默认Hash的问 ...


从上面的第二个链接看, hash在64位机器上默认使用了FNV-1方法。该hash方法实现非常容易。

https://en.wikipedia.org/wiki/Fo ... %93Vo_hash_function

=====================================================================
很好奇这么大的规模,怎么会想到用Mathematica来做
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2017-9-28 19:44:09 | 显示全部楼层
wayne 发表于 2017-9-28 19:35
从上面的第二个链接看, hash在64位机器上默认使用了FNV-1方法。该hash方法实现非常容易。

https:// ...

积分啊,把RootSum初等化啊。慢慢就涨到这么大了。还好压缩回3M了。

-----
顺便问问,你试过树莓派集群吗?

点评

没有。集群这玩意是软件栈层次的吧。只要机器都连网  发表于 2017-9-28 20:35
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-18 11:21 , Processed in 0.061878 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表