Java ????????????
???????????? ???????[ 2012/8/2 10:36:39 ] ????????
?????????
???????????2??jdk?????????????????????????л???????ó?????Ч?????????2?????????????????????????????α??????п?????3???????У??????????????????????????????????????????????jdk??nextInt(n)??????????????
???????2??????????
??????????jdk???0~N??N??????????????????????????2???????
????1??Math.random() ——????[0??1)?????С???????(int) ??n * Math.random()????????[0??n)???????
????2??java.util.Random??nextInt(n)???? ——????[0??n)?????С??
??????jdk1.6????У?Math.random()??????£?
public static double random() {
if (randomNumberGenerator == null) initRNG(); // randomNumberGenerator??Math?г??е?Random????
return randomNumberGenerator.nextDouble();
}
????randomNumberGenerator ???Math.random()???????Random???????????????ɡ?
?????????????Random???nextDouble()??nextInt(n)??????????
public double nextDouble() {
return (((long)(next(26)) << 27) + next(27))
/ (double)(1L << 53);
}
public int nextInt(int n) {
if (n <= 0)
throw new IllegalArgumentException("n must be positive");
if ((n & -n) == n) // i.e.?? n is a power of 2
return (int)((n * (long)next(31)) >> 31);
int bits?? val;
do {
bits = next(31);
val = bits % n;
} while (bits - val + (n-1) < 0); // ????????????ж????????a
return val;
}
??????2?γ????п?????????????????????????????????next(n)??
?????????next(n)??????????nλbits?????bitλ????0??1????n<32???next(n)?????????????Χ?0~2^31-1????n=32??????????????Χ?-2??31?η?~2^31-1??????е?next?????????return (int)(nextseed >>> (48 - bits)) ??????????????48λ???????????????????????nλbit??
??????nextDouble()????????????2??next(n)????nextInt(n)????????????????next(n)???????2?????£??????b???????????nextInt(n)??nextDouble()??????????Ч??????
???????????(int) ??n * Math.random()????????????????????????double?????????????????????nextInt(n)????????Щ??
????????????????????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11