• 优质范文
  • 工作总结
  • 工作计划
  • 作文大全
  • 心得体会
  • 述职报告
  • 实习报告
  • 写作方案
  • 教案反思
  • 演讲稿
  • 发言稿
  • 读书笔记
  • 精美散文
  • 读观后感
  • 范文大全
  • 当前位置: 博通范文网 > 读观后感 > 正文

    bp神经网络算法matlab [PHP,Hash算法:Times33算法代码实例]

    时间:2018-08-16 来源:博通范文网 本文已影响 博通范文网手机站

    这篇文章主要介绍了PHP Hash算法:Times33算法代码实例,本文直接给出实现代码,需要的朋友可以参考下

    最近看书,里面提到了一些Hash算法。比较有印象的是Times33,当时理解不是很透测,今天写了段程序来验证了一下。

    先上代码:

    复制代码 代码如下:

    /**

    * CRC32 Hash function

    * @param $str

    * @return int

    */

    function hash32($str)

    {

    return crc32($str) >> 16 & 0x7FFFFFFF;

    }

    /**

    * Times33 Hash function

    * @param $str

    * @return int

    */

    function hash33($str)

    {

    $hash = 0;

    for($i=0; $i

    $hash += 33 * $hash + ord($str{$i});

    }

    return $hash & 0x7FFFFFFF;

    }

    $n = 10;

    // Test Case 1

    $stat = array();

    for($i=0; $i<10000; $i++){

    $str = substr(md5(microtime(true)), 0, 8);

    $p = hash32($str) % $n;

    if(isset($stat[$p])){

    $stat[$p]++;

    }else{

    $stat[$p] = 1;

    }

    }

    print_r($stat);

    // Test Case 2

    $stat = array();

    for($i=0; $i<10000; $i++){

    $str = substr(md5(microtime(true)), 0, 8);

    $p = hash33($str) % $n;

    if(isset($stat[$p])){

    $stat[$p]++;

    }else{

    $stat[$p] = 1;

    }

    }

    print_r($stat);

    以上有两个测试用例。第一个,用CRC32的方法;第二个是Times33的算法实现。

    效果:

    结果分布,两种算法不相上下(估计是数据源的问题,md5只有0-f)。也有文章说CRC32的分布更均匀(参考链接:)

    但耗费时间,CRC32比Times33快将近一倍。

    为什么是33?

    即是素数(质数),也是奇数。除了33,还有131, 1313, 5381等。PHP内置的Hash函数用的是5381,在“鸟哥”的一篇博文中也有提到。

    推荐访问:算法 实例 代码 php Hash算法:Times33算法代码实例 hash加密算法代码

    • 读/观后感
    • 精美散文
    • 读书笔记
    • 演讲
    • 反思
    • 方案
    • 心得体会