无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

理解Excel的隨機(jī)數(shù):注意事項(xiàng),使用技巧,真正的隨機(jī)數(shù)

2023-06-09 19:55 作者:喜歡Excel的不系之舟  | 我要投稿


來(lái)E學(xué)會(huì),學(xué)習(xí)不一樣的Excel

這是之前寫(xiě)的一篇”理解Excel“系列里的文章,開(kāi)始發(fā)在公眾號(hào)上?,F(xiàn)在搬運(yùn)過(guò)來(lái)。


Excel提供了三個(gè)生成隨機(jī)數(shù)的函數(shù):RAND,RANDBETWEEN,RANDARRAY。

要用好這幾個(gè)函數(shù)以及隨機(jī)數(shù),有一些事情應(yīng)該了解。

隨機(jī)數(shù)會(huì)重復(fù):如何得到一組唯一的隨機(jī)數(shù)

很多人會(huì)有一個(gè)潛意識(shí)中的誤解,認(rèn)為這些函數(shù)生成的隨機(jī)數(shù)是唯一的。其實(shí),這是沒(méi)有任何保證的。

有時(shí)候一定會(huì)生成重復(fù)的隨機(jī)數(shù),比如,下面的公式:

這個(gè)公式生成1到10之間的整數(shù),返回一個(gè)10行10列的數(shù)組,其中必然有很多是重復(fù)的:

即使你生成小數(shù),甚至生成一個(gè)很大范圍的小數(shù),比如:


看上去沒(méi)有重復(fù)的數(shù)值:

但是,這是沒(méi)有保證的。實(shí)際上,只要你進(jìn)行足夠多的次數(shù)的重算,可以肯定一定會(huì)出現(xiàn)重復(fù)值。

所以,如果你希望得到不重復(fù)的隨機(jī)數(shù),可以使用UNIQUE函數(shù):

但是,因?yàn)閮?nèi)層的RANDARRAY函數(shù)不保證唯一,所以UNIQUE函數(shù)返回的不一定是10個(gè)元素。如果要想得到10個(gè)不重復(fù)的隨機(jī)數(shù),可以加大隨機(jī)數(shù)的范圍,例如,將RANDARRAY的第4個(gè)參數(shù)從100變成1000000?;究梢员WC得到10個(gè)不重復(fù)的記錄。

可以將上面的公式改寫(xiě)為:

先用RANDARRAY生成一個(gè)比較大(1000行)的數(shù)組,隨機(jī)數(shù)范圍比較大。然后用UNIQUE函數(shù)取出其中的不重復(fù)結(jié)果,最后,使用CHOOSE函數(shù)返回其中的前10行。(這個(gè)方法可以保證取出的絕對(duì)不重復(fù)。但是不保證一定可以取出10個(gè)數(shù)值。如果沒(méi)有10個(gè)不重復(fù)值,就會(huì)返回錯(cuò)誤值)。

偽隨機(jī):如何得到真正的隨機(jī)數(shù)

需要說(shuō)明的是,Excel中的這三個(gè)函數(shù)生成的隨機(jī)數(shù)都不是真正的隨機(jī)數(shù),而是偽隨機(jī)數(shù)。實(shí)際上它們是通過(guò)一個(gè)復(fù)雜的算法來(lái)模擬隨機(jī)數(shù)。如果你了解這個(gè)算法,你甚至可以預(yù)測(cè)下一個(gè)隨機(jī)數(shù)是多少。(當(dāng)然,這非常困難)。

真正的隨機(jī)數(shù)一般是物理生成的,所以我們一般沒(méi)有辦法直接使用。有一個(gè)網(wǎng)站,

  • https://www.random.org/

號(hào)稱可以生成真正的隨機(jī)數(shù)。不過(guò)我沒(méi)有研究過(guò)這個(gè)網(wǎng)站,因?yàn)樗荒苌呻S機(jī)數(shù),然后復(fù)制到Excel中,所以也不方便使用。

當(dāng)然,實(shí)際中也沒(méi)有太多非常需要真正的隨機(jī)數(shù)的地方。(甚至,我個(gè)人都非常懷疑是否存在真正的隨機(jī)數(shù)??)。對(duì)于大部分應(yīng)用來(lái)說(shuō),偽隨機(jī)數(shù)就足夠了。在Excel 2003之前,隨機(jī)數(shù)的算法還是有點(diǎn)問(wèn)題,不過(guò)之后的版本已經(jīng)升級(jí)了算法,所以,可以放心地使用它們。不用關(guān)心是否真正的隨機(jī)。

如果非要使用真正的隨機(jī)數(shù),這里有一個(gè)我認(rèn)為不錯(cuò)的方法:使用NOW()函數(shù)。這個(gè)函數(shù)返回當(dāng)前的時(shí)間,我們知道,時(shí)間就是數(shù)值:

我們可以將這個(gè)時(shí)間的最后幾位作為隨機(jī)數(shù)使用:

這個(gè)公式就可以返回0-100之間的隨機(jī)的整數(shù)。

需要時(shí)生成隨機(jī),然后不再改變的方法

很多時(shí)候,我們對(duì)隨機(jī)數(shù)的需求是間歇性的:需要時(shí)生成隨機(jī)數(shù),然后不再改變,就像扔骰子。

我們當(dāng)然可以使用函數(shù)生成隨機(jī)數(shù),然后再粘貼成數(shù)值。但是這樣做的話,下次需要隨機(jī)數(shù)時(shí),就需要重新寫(xiě)公式。

還有一種方法,就是寫(xiě)完隨機(jī)數(shù)公式后,將計(jì)算方式改為手動(dòng)。然后每次需要隨機(jī)數(shù)的時(shí)候都重新計(jì)算。但是這種方法對(duì)其他的公式也有影響。

這里推薦大家使用Power Query。

在Excel中新建一個(gè)空查詢,然后創(chuàng)建以下步驟:

你可以將這段代碼復(fù)制到Power Query的高級(jí)編輯器中,然后點(diǎn)擊完成。也可以自己按照上述代碼添加各個(gè)步驟。具體請(qǐng)參見(jiàn)本公眾號(hào)的Power Query相關(guān)文章。

實(shí)際上也是使用了M語(yǔ)言中的Number.Random和Number.RandomBetween兩個(gè)函數(shù)。類似于Excel中的RAND和RANDBETWEEN函數(shù)。

結(jié)果如下:

分別生成了一列0-1之間的隨機(jī)數(shù)和1到100之間的隨機(jī)數(shù)。

理解Excel的隨機(jī)數(shù):注意事項(xiàng),使用技巧,真正的隨機(jī)數(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
玛纳斯县| 纳雍县| 黄冈市| 安阳县| 洪湖市| 玉屏| 保德县| 渑池县| 瓮安县| 莎车县| 察雅县| 和硕县| 翁源县| 六枝特区| 麟游县| 凤山市| 湟源县| 华亭县| 昌平区| 甘孜| 山西省| 台中县| 类乌齐县| 秦安县| 平果县| 邵东县| 福鼎市| 绥滨县| 邯郸县| 广汉市| 永定县| 乐清市| 邮箱| 兴义市| 神农架林区| 兴化市| 崇信县| 合江县| 岱山县| 兰州市| 隆安县|