產(chǎn)生隨機(jī)數(shù)的問(wèn)題
k = (int) (Math.random() * 100);
Random random=new Random();? k=random.nextInt(100);
這兩種辦法都是產(chǎn)生一個(gè)100以內(nèi)的隨機(jī)數(shù),兩者的區(qū)別是什么?
k = (int) (Math.random() * 100);
Random random=new Random();? k=random.nextInt(100);
這兩種辦法都是產(chǎn)生一個(gè)100以內(nèi)的隨機(jī)數(shù),兩者的區(qū)別是什么?
2016-08-29
舉報(bào)
2017-01-05
我覺(jué)得你表達(dá)的意思是Random.nextInt()方法中調(diào)用了Math.random()方法吧?。?!
Math.random()是偽隨機(jī)數(shù),它是此Random隨機(jī)數(shù)生成器序列中 0.0 和 1.0 之間均勻分布的 double 值
Math.random()的函數(shù)區(qū)間[0.0 , 1.0)。Math.random(double d)與random.nextDouble(d)是等效的,而且Math.random(double d)的執(zhí)行效率快于random.nextDouble(d),可能后者調(diào)用了前者的緣故吧?。?!
看到了覺(jué)得滿意的話請(qǐng)采納,謝謝?。。?/p>
2016-08-30
只是實(shí)現(xiàn)方式的區(qū)別,前者是利用了浮點(diǎn)型轉(zhuǎn)整型會(huì)發(fā)生的向下取整獲得[0, 99]區(qū)間的任意整數(shù),后者是利用系統(tǒng)提供的API實(shí)現(xiàn)獲取[0, 99]區(qū)間的任意整數(shù)。