讓我給你個合理的解釋:
嚴格的說rnd()函式只產生0到1直接的隨機數(但絕不包括0和1),
那麼得:(當然 位數比我下面的還要大 舉個例子)
0的無限逼近:0.0000001
1的無限逼近:0.9999999
int()函式是個取整函式,它的最大特點(往往讓人錯誤)是忽略了小數部分.
結果:
int(0.0000001)=0 int(0.9999999)=0
從0和1的無限逼近值 * 100(即100*rnd())
那麼
100倍0的無限逼近:00.00001 (仍然是0啊) int(100*rnd())=0
100倍1的無限逼近:99.99999 (永遠也到不了100啊 ) int(100*rnd())=99
那麼int(100*rnd())+1
0+1=1
99+1=100
最後得出區間:1-100
讓我給你個合理的解釋:
嚴格的說rnd()函式只產生0到1直接的隨機數(但絕不包括0和1),
那麼得:(當然 位數比我下面的還要大 舉個例子)
0的無限逼近:0.0000001
1的無限逼近:0.9999999
int()函式是個取整函式,它的最大特點(往往讓人錯誤)是忽略了小數部分.
結果:
int(0.0000001)=0 int(0.9999999)=0
從0和1的無限逼近值 * 100(即100*rnd())
那麼
100倍0的無限逼近:00.00001 (仍然是0啊) int(100*rnd())=0
100倍1的無限逼近:99.99999 (永遠也到不了100啊 ) int(100*rnd())=99
那麼int(100*rnd())+1
0+1=1
99+1=100
最後得出區間:1-100