通过取模方式,随机获得20个分区

问题描述

假如有100万个手机号码,要均匀分布到20个数据库分区,取模如何是好呢?当然其它好的算法也成我试验了下通过手机号码的最后两位数的asicc码取模,不太理想 问题补充:chen_yongkai 写道

解决方案

直接用Long的hashCodelong value;//手机号int hashCode=(int)(value ^ (value >>> 32));int index=hashCode%20;
解决方案二:
引用int index=hashCode%20; int index=Math.abs(hashCode)%20
解决方案三:
据说手机是根据前7位分区的前三位是运营商,和卡号类型,4-7位是省市的位置你可以根据这个来分区你看这个怎么样 ,这个分区数差不多在20*30左右hashcode = N_0_3*100+N_4_7%20

时间: 2024-10-27 14:19:05

通过取模方式,随机获得20个分区的相关文章

java运算符的优先级和%取模

问题描述 java运算符的优先级和%取模 int a=2 ; int b=a+3*a++ ; b的输出值为什么是8 不是9吗怎么变成8啦 解决方案 ++优先级虽然高,但是第一个a编译器先对它取值了.也许你觉得第一个a应该是a自增1以后的值.但是编译器不这么认为.这种代码在C++中是未定义行为的代码,换言之语法规范没有规定结果是多少,不同的编译器可以产生不同的结果.我不清楚Java中有没有规定,但是可以肯定的是,这种模棱两可的代码绝对不要在你写程序的时候写出来. 解决方案二: 这段代码的正确写法取

LoadRunner参数化设置:数据分配与取值方式

LoadRunner参数化设置中有九种取值方式:(以用户名参数user为例,其数据参数列表为:jojo.201401.201402.201403.201405.201406.201407.201408.201409,迭代次数设置为10次) 1.Sequential+Each Iteration 脚本会执行10次,每次迭代会按数据列表顺序取值,每一次迭代中出现的参数user的值是当前第一次参数替换的值.第1次迭代均为jojo,以此类推. 2.Sequential+Each Occurrence 脚

《51单片机应用开发从入门到精通》——2.5 用取表方式实现灯移动

2.5 用取表方式实现灯移动 功能说明:单片机端口接8只LED,编程时利用取表的方法,使端口P1的LED先一次点亮1只跳跃左移,点亮顺序为P1.0.P1.2.P1.4.P1.6:接着一次点亮2只,从左向右移动2次:一次点亮3只,左右移3次:然后4只灯P1.0.P1.2.P1.4.P1.6与P1.1.P1.3.P1.5.P1.7交互点亮4次:最后8只灯闪烁6次,不断循环. 2.5.1 程序设计 1.流程图 程序设计流程如图2-3所示. 2.程序 汇编语言编写的用取表方式实现灯移动源程序代码如下:

[20170622]bc与取模运算.txt

[20170622]bc与取模运算.txt --//前一阵子在使用bc做取模运算.发现一个奇怪的问题.开始以为是使用mod(受oracle的影响). --//查手册才发现%. --//例子如下: $ bc -v bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. $ bc -q 9%4 1 9%5 4 --//很明显以上结果是正确的,但是如果加参数-l. -l, --mathlib =>  De

快速幂取模算法

所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余).在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快.计算范围更大的算法,产生了快速幂取模算法.我们先从简单的例子入手:求abmodc 算法1.直接设计这个算法: int ans = 1; for(int i = 1;i<=b;i++) { ans = ans * a; } ans = ans % c; 缺点:这个算法存在着明显的问题,如果a和b过大,很容易就会溢出. 我们先来看看第一个改进方案:在讲

UVa 374 Big Mod:快速幂取模

374 - Big Mod Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=310 Calculate for large values of B, P, and M using an efficient algorithm. (That's right, t

关于java两个数取模的问题

问题描述 关于java两个数取模的问题 public class Test { public static void main(String [] args) { int b=5a=3; System.out.println(a%b); } } 为什么输出结果为3,而不是0? 解决方案 3除以5,商0余3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案二: a%b = 3 a/b = 0. % 取模,也就是取余数,a = 3 b=5 a%b = 3%5=0

js取模(求余数)隔行变色_javascript技巧

复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>js取模隔行变色</title><script type="text/javascript"

取模和与运算的优化

1 //来自coolshell的一个代码. 1 <span style="color: #000000;">int steps = 64 * 1024 * 1024; 2 // Arbitrary number of steps 3 int lengthMod = arr.Length - 1; 4 for (int i = 0; i < steps; i++) 5 { 6     arr[(i * 16) & lengthMod]++;   // (x &a