r語言生成0或1隨機(jī)數(shù) C語言怎樣產(chǎn)生一定范圍的隨機(jī)數(shù)?
C語言怎樣產(chǎn)生一定范圍的隨機(jī)數(shù)?C語言獲取隨機(jī)數(shù)的函數(shù)是rand(),它可以得到一個(gè)非負(fù)整數(shù)隨機(jī)數(shù)。要調(diào)用Rand,需要引用頭文件stdlib。為了將隨機(jī)數(shù)限制在一定的范圍內(nèi),我們可以使用模除加的方法
C語言怎樣產(chǎn)生一定范圍的隨機(jī)數(shù)?
C語言獲取隨機(jī)數(shù)的函數(shù)是rand(),它可以得到一個(gè)非負(fù)整數(shù)隨機(jī)數(shù)。要調(diào)用Rand,需要引用頭文件stdlib。為了將隨機(jī)數(shù)限制在一定的范圍內(nèi),我們可以使用模除加的方法。要生成M<=r<=n范圍內(nèi)的隨機(jī)數(shù)r,我們可以使用以下公式:rand()%(n-m1)M。其原理是,對(duì)于任何數(shù)字,0<=rand()%(n-m1)<=n-M,然后0 M<=rand()%(n-m1)M<=n-M,即M<=rand()%(n-m1)M<=n
x
]x]。得到的10個(gè)隨機(jī)數(shù)之和為1。
為了方便起見,這里最初使用從0到1的均勻分布。事實(shí)上,您可以使用任何分布。只要你把這十個(gè)數(shù)轉(zhuǎn)換成所有的正數(shù),然后除以和,你就會(huì)得到10個(gè)隨機(jī)數(shù),和為1。
當(dāng)然,不會(huì)討論這10個(gè)數(shù)字的分布。
如何用R語言生成10個(gè)0至1之間隨機(jī)數(shù)且要求他們的和為1?
在單元格中輸入=rand(),以隨機(jī)生成一個(gè)介于0和1之間的隨機(jī)數(shù)。假設(shè)要生成一個(gè)介于0和100之間的隨機(jī)數(shù),則公式很靈活:=rand()*100