最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
奇台县| 垦利县| 敦煌市| 文化| 福海县| 赞皇县| 伊宁市| 达州市| 栾川县| 乌拉特前旗| 遂昌县| 新竹市| 临沧市| 油尖旺区| 凤山县| 神木县| 汶上县| 富平县| 金门县| 昌都县| 陈巴尔虎旗| 柳林县| 清新县| 大宁县| 洪雅县| 扶沟县| 喜德县| 安丘市| 肇源县| 崇礼县| 绥中县| 高陵县| 连平县| 永靖县| 洪江市| 莱芜市| 广德县| 广昌县| 阿坝县| 池州市| 夏河县|