murmur3 hash(hash算法)
2024-09-05 07:26:00
HashUtil.java
package com.example.test.util; import com.google.common.base.Charsets;
import com.google.common.hash.Hashing; public class HashUtil {
/**
* google的murmur算法。 hash环:0 ~ 2 * Integer.MAX_VALUE
* @author wangxiaolei
* @date 2020/5/22 16:20
*/
public static long murmur(String str){
int murmur = Hashing.murmur3_32().hashString(str, Charsets.UTF_8).asInt();
long result = (long)murmur + (long)Integer.MAX_VALUE;
return result;
}
}
测试:
package com.example.test.util; import org.apache.commons.lang3.RandomStringUtils; import java.util.ArrayList;
import java.util.List; public class TestUtil {
public static void main(String[] args) throws Exception {
int positiveCount =0;
int negativeCount =0;
int time=0;
while(time++<=100000) {
String random = RandomStringUtils.random(32);
long murmur = HashUtil.murmur(random);
if(murmur%100>=50){
positiveCount++;
}else{
negativeCount++;
}
}
System.out.println("大于50%概率的数:"+positiveCount);
System.out.println("小于等于50%概率的数:"+negativeCount);
}
}
结果:
大于50%概率的数:49916
小于等于50%概率的数:50085
大于50%概率的数:50061
小于等于50%概率的数:49940
大于50%概率的数:49753
小于等于50%概率的数:50248
最新文章
- android okvolley框架搭建
- iOS 支付宝的使用
- MAC电脑操作快捷键
- android手机两种方式获取IP地址
- Office Online简介
- POJ 2570
- VC实用小知识总结 (一),转http://blog.csdn.net/myiszjf/article/details/10007431
- listview优化
- C++学习笔记29,引用变量(1)
- Kafka概念入门(一)
- phpcms笔记
- Java面向对象 Main函数 静态的应用 单例设计模式
- POJ 2728 Desert King (01分数规划)
- 洛谷P5162 WD与积木 [DP,NTT]
- 『Python CoolBook:Collections』数据结构和算法_容器型value字典&;顺序字典
- git基本
- Centos7下安装python3
- centos nginx 中安装ssl证书 以及在项目中的使用
- Codeforces 374C - Inna and Dima
- python数据类型总结