[20230919]黄金分隔法0.618.txt --//许多人都知道黄金分隔点=0.618,如何计算得来估计许多人不知道,我大约记得读初中时提到五边形有关,至于如何算我自己也也忘记了. --//实际上计算公式如下: (sqrt(5)-1)/2 $ echo (sqrt(5)-1)/2| bc -l .61803398874989484820 --//尝试使用dc看看. $ dc -e "20k 5 v 1 - 2 / p" .61803398874989484820 --//实际上许多加密或者hash算法会使用这个数字有关. $ echo (sqrt(5)-1)/2*2^32 | bc -l 2654435769.49723029645788446720 --//取整2654435769 转换16进制: --//2654435769 = 0x9e3779b9 $ echo "obase=16;2654435769" | bc 9E3779B9 $ dc -e "16 o 2654435769 pq" 9E3779B9 --//如果你上网查询 9e3779b9 就可以找到许多类似介绍加密或者hash算法的函数与这值有关. --//已经离开学校太久太久,感觉许多基本的知识已经完全的还给老师..........也许用 用尽废退 来比喻比较恰当. --//也许大家会问,为什么探究这个,前几天看了链接: http://mvelikikh.blogspot.com/2023/04/computing-orahash.html --//作者使用python语言,写了一个oracle ora_hash函数的对应例子: --//源代码可以从如下地址获得: https://github.com/mvelikikh/oracle/blob/master/tools/ora_hash.py def ora_hash(data, max_bucket=0xffffffff, seed=0): if not data: return def uint32(n): return n & 0xffffffff def int_from_bytes(data): return int.from_bytes(data, 'little') def mix(data, final=False): nonlocal a, b, c, seed s7 = int_from_bytes(data[12:16]) if final: s7 = uint32(s7 << 8) s0 = uint32(a + int_from_bytes(data[0:4]) + s7 + seed) if final: s0 = uint32(s0 + len_) s1 = s0 ^ s0>>7 s2 = uint32(b + int_from_bytes(data[4:8]) + s1) s3 = uint32(s2 ^ s2<<0xd) s4 = uint32(c + int_from_bytes(data[8:12]) + s3) s5 = s4 ^ s4>>0x11 s0 = uint32(s0 + s5 + s7 + seed) if final: s0 = uint32(s0 + len_) s6 = uint32(s0 ^ s0<<9) s1 = uint32(s1 + s2 + s6) s2 = s1 ^ s1>>3 s3 = uint32(s2 + s3 + s4) a = uint32(s2 + s3) s3 = uint32(s3 ^ s3<<7) s0 = uint32(s0 + s3 + s5) b = uint32(s0 + s3) s0 = uint32(s0 ^ s0>>0xf) s1 = uint32(s0 + s1 + s6) c = uint32(s0 + s1) seed = uint32(s1 ^ s1<<0xb) a = b = c = 0x9e3779b9 len_ = len(data) while len(data) >= 16: mix(data) data = data[16:] mix(data, final=True) return seed % (max_bucket + 1) --//我在自己的机器上测试失败,也许是python版本太低或者是自己不熟悉python的缘故,无法执行.如果仔细查看里面存在如下赋值语句: --// a = b = c = 0x9e3779b9.
[20230919]黄金分隔法0.618.txt
来源:这里教程网
时间:2026-03-03 18:58:33
作者:
编辑推荐:
- [20230919]黄金分隔法0.618.txt03-03
- 淘宝的“泛娱乐化”自救?03-03
- [20230921]为什么执行计划不再awr中.txt03-03
- oracle系统表空间过大问题处理03-03
- 恶意程序造成数据库启动报错03-03
- sql_trace相关脚本03-03
- ./opatch: line 839: [: too many arguments03-03
- [20230808]建立修改索引统计信息modind.sql脚本.txt03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 淘宝的“泛娱乐化”自救?
淘宝的“泛娱乐化”自救?
26-03-03 - 直播、AI赋能,美团披着荆棘前行
直播、AI赋能,美团披着荆棘前行
26-03-03 - Oracle 11.2.0.4 创建普通表,区及段默认是否会分配
Oracle 11.2.0.4 创建普通表,区及段默认是否会分配
26-03-03 - 数据库 SQL执行时长
数据库 SQL执行时长
26-03-03 - 数据库内存交换异常 故障报告
数据库内存交换异常 故障报告
26-03-03 - 大模型加持,讯飞智能办公本X3助办公效率再提速
大模型加持,讯飞智能办公本X3助办公效率再提速
26-03-03 - 从线上化走向智能化,数字办公助力企业实现"效率+安全”双提升|爱分析报告
从线上化走向智能化,数字办公助力企业实现"效率+安全”双提升|爱分析报告
26-03-03 - enq:TX – row lock contention产生原因及处理脚本
- Oracle 11G 区管理方式
Oracle 11G 区管理方式
26-03-03 - VMware Workstation RAC共享磁盘与心跳配置
VMware Workstation RAC共享磁盘与心跳配置
26-03-03
