首页 > 其他分享 >[20230919]黄金分隔法0.618.txt

[20230919]黄金分隔法0.618.txt

时间:2023-09-21 21:00:11浏览次数:41  
标签:0.618 -- s1 s0 s3 20230919 txt data uint32

[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.

标签:0.618,--,s1,s0,s3,20230919,txt,data,uint32
From: https://www.cnblogs.com/lfree/p/17720946.html

相关文章

  • [20230908]Oracle Index Range Scan with LIKE Condition on Wildcard '_'.txt
    [20230908]OracleIndexRangeScanwithLIKEConditiononWildcard'_'.txt--//昨天看链接:http://ksun-oracle.blogspot.com/2023/09/oracle-index-range-scan-with-like.html,当时一下子没有反应过来,--//作者这样查询怎么会有这么大区别呢?仔细看题目才明显原来查询的字符串里面......
  • 20230919 .NET面经
    SQLIQuerable和IEnumerable的主要区别?https://stackoverflow.com/questions/252785/what-is-the-difference-between-iqueryablet-and-ienumerabletSothedifferencebetweenIQueryableandIEnumerableisaboutwherethefilterlogicisexecuted.Oneexecuteso......
  • 20230919
    //division,introduce,manager,marketing,outstanding,pleased,staff,top-notch,trading,businesscard,FinancialOfficer,inchargeof,keypersonnel,namecard,responsiblefor,salesfigure,topshape,touchdowndivision-部门Divisionreferstoa......
  • 每日总结20230919
    代码时间(包括上课)5h代码量(行):30行博客数量(篇):1篇相关事项:1、今天上午上的是软件设计模式和人机交互技术,软件设计模式讲的是单例模式和适配器模式,人机交互技术讲的是定位。2、今天上午人机交互技术留了三十分钟小组讨论明天软件案例开发分析的PPT讲解。3、晚上和下午的话去科技......
  • 20230919打卡
    今天的学习重点是链表合并和多项式创建。链表合并是算法与数据结构中的重要内容,它可以将两个有序链表合并成一个有序链表。通过学习链表合并的原理和实现方法,我掌握了如何有效地处理链表数据结构,并能够理解和运用链表相关的算法。另外,我还学习了多项式的创建。多项式是数学中的重......
  • 20230919_京东良西延动态
    京良路西延近况4京良路西段工程是咱房山居民十分关心的一件大事该工程横跨房山区、丰台区道路全长约3730米近日,京良路西段涉及到的铁匠营村腾退搬迁又有新进展了村中道路两侧安装了施工围挡又新张挂了很多宣传条幅显示项目进入收尾阶段腾退搬迁工作将加快实施青......
  • MATLAB txt文件抽稀并分为多个txt文件
    chouxi.ma=load("file.txt");%len=length(a);interval=9;%间隔+1b=a(1:interval:end,:);dlmwrite('chouxiRes1.txt',b,'delimiter','','precision',8,'-append')fenge.ma=load("file1.t......
  • ros2迁移c++之package.xml、CMakeLists.txt及编译
    1、package.xml<package><!--1.根标签--> <name><!--2.包名--> <version><!--3.版本号--> <description><!--4.包描述--> <maintainer><!--5.维护者--> <......
  • 使用【Python】快速生成本项目的requeirments.txt / pipreqs生成requirements.txt报
    使用【Python】快速生成本项目的requeirments.txt https://blog.csdn.net/qq_42076902/article/details/129417568pipreqs生成requirements.txt报错SyntaxError:invalidnon-printablecharacterU+FEFFhttps://blog.csdn.net/qq_51292462/article/details/128472993......
  • 简易TXT文本小说阅读器
    上次学习爬取小说保存到txt文本文件,方便离线阅读,现在做一个简易TXT文本小说阅读器,支持手动翻页和自动翻页阅读。废话不多说,直接上代码,实践下。read_txt.py:importtimedefread_txt_book(file_path,start_str,per_line=3,auto_flag=False,sleep_time=3):'''......