目的:邮件地址散列到N个箱 (N是正整数)我的实现:<?php
$email;
$n;
$md5 = str_split(md5($email));
$md5_sum = 0;
foreach ($md5 as $row){
$md5_sum += ord($row);
}
$key = $md5_sum%$n;?>请问有没有更简单点儿的实现方法?好久没来了,只有28分咯~
$email;
$n;
$md5 = str_split(md5($email));
$md5_sum = 0;
foreach ($md5 as $row){
$md5_sum += ord($row);
}
$key = $md5_sum%$n;?>请问有没有更简单点儿的实现方法?好久没来了,只有28分咯~
可缩短至 17微秒
例如,理论上的$md5_sum至大值为102*32,大约3000多,至小值48*32,大约1500多就算md5字符串中,0—9,a—f出现的频率一样$md5_sum也只能随机映射到102*32-48*32基数的集合中