1个回答
展开全部
你这个是为了产生两个小于10的随机整数。
第一个使用当前时间毫秒数 %10.
第二个肯定不能跟第一个一样,因为你计算机运行这两句代码的时间差很可能比较固定,导致这两个数的大小有相关性。
那为什么乘以7,因为7是一个质数,一般hashcode等算法都是用的一些质数来乘的,这样会减小一些相关性。那你肯定又问既然要求是质数,那为什么不用11,13,19呢。其实也是可以的,但是你这里随机出来的数要%10,11就相当于1了,13就相当于3了,19相当于9。就相当于还是要在10以内找质数,1肯定不行,3太小,把数的随机性拉的不大,5跟10有点相关性,不能用。9不是质数。这样看来还真是乘以7最好。
第一个使用当前时间毫秒数 %10.
第二个肯定不能跟第一个一样,因为你计算机运行这两句代码的时间差很可能比较固定,导致这两个数的大小有相关性。
那为什么乘以7,因为7是一个质数,一般hashcode等算法都是用的一些质数来乘的,这样会减小一些相关性。那你肯定又问既然要求是质数,那为什么不用11,13,19呢。其实也是可以的,但是你这里随机出来的数要%10,11就相当于1了,13就相当于3了,19相当于9。就相当于还是要在10以内找质数,1肯定不行,3太小,把数的随机性拉的不大,5跟10有点相关性,不能用。9不是质数。这样看来还真是乘以7最好。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询