JAVA提问

为什么第二个数是*7%10啊?我没怎么想明白... 为什么第二个数是*7%10啊? 我没怎么想明白 展开
 我来答
土憨宝
2014-05-10 · TA获得超过368个赞
知道小有建树答主
回答量:203
采纳率:100%
帮助的人:215万
展开全部
你这个是为了产生两个小于10的随机整数。
第一个使用当前时间毫秒数 %10.
第二个肯定不能跟第一个一样,因为你计算机运行这两句代码的时间差很可能比较固定,导致这两个数的大小有相关性。
那为什么乘以7,因为7是一个质数,一般hashcode等算法都是用的一些质数来乘的,这样会减小一些相关性。那你肯定又问既然要求是质数,那为什么不用11,13,19呢。其实也是可以的,但是你这里随机出来的数要%10,11就相当于1了,13就相当于3了,19相当于9。就相当于还是要在10以内找质数,1肯定不行,3太小,把数的随机性拉的不大,5跟10有点相关性,不能用。9不是质数。这样看来还真是乘以7最好。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式