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

最新文章

  1. android okvolley框架搭建
  2. iOS 支付宝的使用
  3. MAC电脑操作快捷键
  4. android手机两种方式获取IP地址
  5. Office Online简介
  6. POJ 2570
  7. VC实用小知识总结 (一),转http://blog.csdn.net/myiszjf/article/details/10007431
  8. listview优化
  9. C++学习笔记29,引用变量(1)
  10. Kafka概念入门(一)
  11. phpcms笔记
  12. Java面向对象 Main函数 静态的应用 单例设计模式
  13. POJ 2728 Desert King (01分数规划)
  14. 洛谷P5162 WD与积木 [DP,NTT]
  15. 『Python CoolBook:Collections』数据结构和算法_容器型value字典&amp;顺序字典
  16. git基本
  17. Centos7下安装python3
  18. centos nginx 中安装ssl证书 以及在项目中的使用
  19. Codeforces 374C - Inna and Dima
  20. python数据类型总结

热门文章

  1. 开始前端三大基础的js之途
  2. Springboot quartz集群(3) — 多节点发送邮件
  3. buu yxx
  4. WPF技巧:通过代码片段管理器编写自己常用的代码模板提示效率
  5. 如果面试官问你 JVM,额外回答逃逸分析技术会让你加分!
  6. Min25 筛学习笔记
  7. C语言:结构体应用
  8. WIN10 网卡驱动异常代码56的问题及解决方法
  9. uni-app&amp;H5&amp;Android混合开发三 || uni-app调用Android原生方法的三种方式
  10. springboot-6-springSecurity