Excel生成隨機數的技巧,隨機數發生器,你用過嗎

2020-12-05 數據分析與可視化

商業分析中的很多應用要求從特定的概率分布中隨機抽樣。例如,在財務模型中,當銷售額、銷量增長幅度、運營支出和通貨膨脹因子等全都不確定時,我們可能對累積的貼現現金流的分布感興趣,而這一分布可以用概率分布來描述。那些決策模型的結果變量,是隨機輸入變量的複雜函數。要理解這些變量的概率分布,只有藉助所謂蒙特-卡羅方法的抽樣流程才能實現這一抽樣流程。

Excel獲取隨機數

從概率分布中產生隨機樣本,其基本原理是隨機數的概念。隨機數是均勻分布在0和1之間的數。從技術上講,電腦不能產生真正的隨機數,因為它們必須使用一個可預測的算法。但是,設計用於產生一個數列的算法,似乎是隨機的。在 Excel中,我們可以使用函數RAND()在任何一個單元格之中產生隨機數。這個函數沒有參數,因此,括號之中應當保持空格(但括號是必需的)。下圖是顯示在 Excel I中產生的10個隨機數。你應當知道的是,除非阻止了自動的重新計算功能,否則,不論什麼時候修改任何單元格中的值,包含有RAND()的單元格中的值都會改變。

在 Excel的「公式」選項卡的「計算」組中的「計算選項」,可以手動地更改「自動計算」的選項。

在手動重新計算模式下,只有在按下了F9按鈕時,工作表才會重新計算。

從離散概率分布中抽樣

使用隨機數從離散概率分布中抽樣,很容易做到。接下來將使用擲兩個骰子的概率分布來解釋這一過程。

從擲兩個骰子的結果的概率分布中抽樣,用小數來表示的概率質量函數和累積分布函數如下所示。

注意,F(x)值將從0到1之間的區間分成更小的區間,這些更小的區間與結果的概率相對應。例如,從0(但不包括)至0.028(包括)的區間中,其概率為0.028,與結果x=2相對應;從0.028(但不包括)至0.083(包括)的區間,其概率為0.056,與結果x=3相對應;依此類推。概括如下:

這樣,任何隨機數都必須處在這些區間的某一個之中。所以,為了從這個分布中產生個結果,我們只需要選擇一個隨機數,並確定它處在哪個區間之中。假設我們使用圖中的數據。第一個隨機數是0.902656.它處在與樣本結果10相對應的區間之中。第二個隨機數是0.396774.它處在與結果6相對應的區間之中。基本上,這相當於我們在電腦上發明了擲骰子的方法。如果反覆做下去,那麼,每個結果發生的頻率,應當與隨機數的區間的大小成比例(也就是說,概率與結果相關聯),因為隨機數是均勻分布的。

從常見的概率分布中抽樣

產生隨機數並將它們轉換成從概率分布中獲取的結果的方法,可以用於從幾乎任何分布中抽取的樣本。從某個規定的概率分布中產生的隨機的值,稱為隨機變數。例如,將隨機數轉換成一個來自a和b之間的均勻分布的隨機變數,是件很容易的事。考慮下面這個公式:

U=a+(b-a)*RAND()

注意當RAND()=0、U=a時的情形以及當RAND()接近1、U接近b時的情形。對於RAND()介於0和1之間的其他任何值,(b-a) * RAND()代表著區間(a,b)的比例,與 RAND()對區間(0,1)時的比例相同。因此,所有介於a與b之間的實數,都可能發生。由於RAND()是均勻分布的,因此,它也是U。

雖然這十分容易,但確實難以看出是怎樣從其他分布中產生隨機變數的,比如正態分布或指數分布。這裡不描述如何做這些事情的技術細節,而是描述一下 Excel中做這些事情的能力。

使用Excel隨機數發生器

Excel讓你可以從離散分布和其他一些分布中產生隨機變數,方法是運用「分析」工具欄中的「隨機數發生器」選項。對於功能區的中「數據」選項卡,選擇「分析」組的「數據分析」選項,然後選擇「隨機數發生器」選項。接下來,就會出現如下圖所示的隨機數發生器的對話框。

從這個對話框中可以選擇七種分布:均勻、正態、伯努利、二項式、泊松、模式以及離散(點擊「模式」後,出現了下限和上限的限制、間隔、重複每一數字以及重複數列等選項)。如果你選擇「輸出區域」選項,那麼,你需要規定用來保存結果的輸出表格的左上角單元格引用、變量的個數(你想要發生的值的列數)、隨機數個數(你想要為每個變量發生的數據點的個數)以及分布類型。默認的分布是離散分布。

接下來將從平均值為12的泊松分布中產生100個結果。在「隨機數發生器」對話框中,把變量個數」設定為1,把「隨機數個數」設定為100,並且從「分布」的下拉框中選擇「泊松」。對話框將會產生變化,要求你輸入λ的值,也就是泊松分布的平均值。在該方框中輸入12,點擊「確定」按鈕。該工具將會在一列之中顯示隨機數。

下圖將演示整個操作過程並將結果生成直方圖。

隨機數發生器工具還讓你能夠規定隨機數種子的選項。隨機數種子是從已經發生的一連串隨機數中取的一個值。通過規定同一個種子,你可以再晚些時候再發生同一些隨機數。

當我們在模擬過程中想要再產生一個完全相同的「隨機」事件系列,以便測試同種情況下不同的策略或決策變量的效果時,確定隨機數種子是非常理想的做法。不過,使用「隨機數發生器」工具的一個劣勢是:要產生一組新的樣本值,你必須重複發生隨機數的過程。按下「重新計算」按鈕(F9)將不能改變這些值。這可能使人們難以用這一工具來分析決策模型。

Excel還提供了幾個可以用來產生隨機變數的函數。對於正態分布,可以使用:

NORM.INV(probability,mean, standard deviation)——帶有規定的平均值和標準差的正態分布。NORM.S.INV(probability)——標準正態分布。對於某些高級分布,可以使用:

LOGNORM.INV(probability,mean, standard_deviation)——參數分布,其中Ln(X)已經規定了平均值和標準差。BETA.INV(probability,alpha,beta,A,B)——貝塔分布。使用這些函數,只要在函數中概率的位置輸入RAND()就可以了。比如,NORM. INV(RAND(),5,2)將從一個平均值為5、標準差為2的正態分布中發生隨機變數。每次工作表被重新計算,就發生新的隨機數,因此也產生新的隨機變數。

這些函數可以嵌入到單元格公式中,而且不論什麼時候工作表被重新計算,都將產生新的值。

相關焦點

  • excel隨機數函數是什麼?excel怎樣生成隨機數?
    本篇將介紹excel隨機數函數是什麼?excel怎樣生成隨機數?有興趣的朋友可以了解一下!一、前言excel是我們工作中很常用的一款表格製作工具,它不僅僅只是用來製作表格,它還能對表格中的數據進行處理(比如:運算、排序、篩選等)。excel為數據的處理提供了很多函數,今天小編要介紹的是excel隨機數函數,以及隨機數函數的用法,希望對大家有所幫助!
  • Excel函數公式:含金量超高的隨機數、不重複隨機數生成技巧解讀
    隨機數,在我們的日常中的應用也是非常廣泛的,那麼,如何生成隨機數,如何生成不重複的隨機數,你真的了解嗎?一、生成0-1之間的隨機數。方法:1、在目標單元格中輸入公式:=RAND()。2、如果要重新生成,按F9刷新即可。
  • 隨機數大家都會用,但是你知道生成隨機數的算法嗎?
    計較機算法得出的種種隨機數之是偽隨機數是由於它們的後果都是能夠展望的,只有咱們曉得算法和肇始狀況以及種種參數,便展望下一次隨機出來的後果。而真隨機數則無法展望,即是純真隨機的。 但疑問來了,拋硬幣和擲骰子這些物理徵象又是真的隨機嗎?若咱們曉得了硬幣的肇始狀況以及投擲的角度和力度,是不是能夠展望硬幣投擲的後果呢?
  • Excel隨機數生成方法,包括準確生成不重複和小數隨機數
    在 Excel 中,生成隨機數有兩個函數,分別為Rand函數和RandBetween函數,前者用於生成 0 到 1 之間的隨機數,後者用於生成指範圍的隨機數。它們生成的隨機數中都會產生重複值,如果要生成不重複的隨機數得用變通的方法,通常有兩種方法,一種為先生成種子再生成不重複的隨機數,另一種為用多個函數生成。
  • 偽隨機數發生器:你不知道,其實計算機並不能產生隨機數
    在生活中,我們需要用到隨機數的地方很多,例子也很好舉,比如我們買彩票的號碼就是一個隨機數。但是當計算機中需要產生隨機數的時候,絕大多數情況下並不是真的隨機數,我們把它稱為偽隨機數。能夠被預測這件事對於計算機來說是比較可怕的,因為我們經常使用隨機數的場景是開獎之類的涉及利益和勝負的事情,如果生成偽隨機數那一部分的代碼被隱藏起來還好,遊戲的參與者看不到偽隨機數有什麼規律,也就無法人為操縱。但是針對一些代碼需要公開的情況,偽隨機數的規律性就變得很棘手。
  • JavaScript用Math.random()生成隨機數
    基本概念顧名思義,Math.random()方法就是用於生成隨機數的,因為單詞random的意思正是「隨機的」。該方法生成的結果是 [0, 1) 範圍內的浮點數,注意這是一個左閉右開的區間,即該區間包含0而不包含1。官方文檔指出Math.random()方法生成的隨機數在該區間上要大致符合均勻分布。Math.random()的語法結構如下所示,可以看出它是沒有參數的。
  • Excel快速生成不重複的1-N區間的隨機數
    (1,20),產生的是1-20區間的隨機整數如果我們現在想要生成一串數字,它是某個區間不重複的數據例1、生成1-10區間的不重複數據如果想抽取其中的幾個,例如5個,則在A列中輸入函數=rand(),生成的是1-10區間的,有10個數,所以從A1填充至A10,總共10個隨機數,然後在B列輸入=rank(a1,a:a),需要幾個就向下填充幾個即可,得到的就是不重複的5個數據
  • 隨機生成N個立方體,學習blender Python隨機數生成
    打開blender控制臺首先輸入import random print(random.randint(0,9))多次執行print(random.randint(0,9)),就能見到系統每次都生成0-9內的隨機整數使用了
  • 詳解Python隨機數的生成
    ,比如密碼加鹽時會在原密碼上關聯一串隨機數,蒙特卡洛算法會通過隨機數採樣等等。Python內置的random模塊提供了生成隨機數的方法,使用這些方法時需要導入random模塊。下面介紹下Python內置的random模塊的幾種生成隨機數的方法。1、random.random()隨機生成 0 到 1 之間的浮點數[0.0, 1.0)。
  • 「每日一練」巧用python生成隨機數
    隨機數在我們的生產和生活中有很多的應用場景,比如說登錄驗證的隨機數字等等,那麼你知道在Python中怎麼生成隨機數嗎?往下看,就是這麼簡單!題目python中生成隨機整數、隨機小數、0--1之間小數方法代碼先上代碼~運行效果題目詳述程序分析:隨機整數:random.randint(a,b),生成區間內的整數隨機小數:習慣用numpy庫,利用np.random.randn(5)生成5個隨機小數0-1隨機小數
  • 隨機數實操技巧——幸運大轉盤製作技巧解讀!
    隨機數函數有兩個,分別是Rand函數和Randbetween,作用分別是生成指定範圍內的隨機數。但如何用隨機數來製作幸運大轉盤呢?一、Rand函數。作用:生成大於等於0且小於1的隨機數。語法:=Rand()。方法:在目標單元格中輸入公式:=RAND()。
  • 隨機數
    隨機數,就是隨機生成的數,隨機數最重要的特性是:不可預測。後面的數與前面的數毫無關係,例如:1、200、33、2…..等。
  • 利用Excel隨機生成抽獎器或隨機抽取相關人員,你真的會嗎?
    實際的工作中,隨機選取相關人員的活動很多,除了傳統的「抓鬮」之外,在Excel中有沒有辦法實現「抓鬮」的功能呢?一、效果展示。作用:返回大於等於0且小於1的隨機數。語法:=Rand()。目的:隨機生成大於等於0且小於1的隨機數。
  • 「Excel技巧」有了隨機函數rand和randbetween函數,想隨機就隨機
    今天要說的是Excel的兩個隨機函數RAND函數和RANDBETWEEN函數。別小看這兩個函數,它們雖是小函數,但有大能量。因為它們為我們隨機錄入批量數據提供了很大方便。一、Rand函數用途:用於生成0~1之間的隨機數。
  • 量子隨機數發生器獲得重大突破
    隨機數生成(RNG)用於眾多加密應用中,包括密碼學、數值模擬、賭博和遊戲開發。隨機數是強健而唯一的加密密鑰的核心,這些密鑰用於保護加密操作免遭破壞。RNG還可以增強人工智慧系統的性能。眾所周知,計算機難以生成真正的隨機數,基於軟體的算法實現的隨機數生成器會產生看上去隨機但確定性的數字序列,這帶來了許多信息安全漏洞。
  • 玩轉Python 中的隨機數
    開發中我們經常遇到需要隨機數的場景,比如為了用戶密碼更安全我們有時會加鹽,也就是將用戶原密碼連接上一串隨機字符然後加密保存,又比如我們可能需要隨機展示某張圖片等等。今天,我們就來理一理 Python 中的隨機數的玩法,當然,這裡只涉及標準庫。
  • Excel自動生成考勤表,出勤天數隨機,出勤日期分布隨機
    給定出勤天數的範圍,用Excel自動隨機生成指定範圍內的考勤表,相信這個功能對於很多人來說非常實用。如圖,這是考勤表的樣式,我們在對應姓名和日期的格子內打「√」號表示出勤,打「×」號表示未出勤。要求總天數為30天,隨機生成出勤天數在20至26天的考勤表,使每個人的出勤天數都在20至26天以內且隨機分布,下面我們來看一下如何實現這個功能。首先我們製作一個橫向30個格,縱向15個格子的表格,在格子內輸入公式「=RAND()」該函數是生成隨機數小數,為了美觀,我們將格式全部設置為不保留小數的整數,即顯示的全部是1或0。
  • 源無關量子隨機數研究獲重要進展—新聞—科學網
    中國科學技術大學郭光燦團隊王雙、韓正甫等人針對源無關量子隨機數系統中測量設備的實際特性,提出測量端由於探測器後脈衝、探測效率不匹配、探測器對光源分布敏感等特性所帶來的安全性問題
  • Java 生成隨機數的 5 種方式,你知道幾種?
    當第一次調用 方法時,自動創建了一個偽隨機數生成器,實際上用的是 。當接下來繼續調用 方法時,就會使用這個新的偽隨機數生成器。 方法是 的,因此在多線程情況下,只有一個線程會負責創建偽隨機數生成器(使用當前時間作為種子),其他線程則利用該偽隨機數生成器產生隨機數。Java生成隨機數的幾種高級用法,這篇推薦看一下。 因此 方法是線程安全的。
  • 隨機數函數Rand、Randbetween實戰技巧—自動化分配監考員等技巧
    在前期講解隨機數的函數之後,好多同學留言詢問,隨機數到底怎麼使用?有沒有具體的應用案例等……今天小編結合實際情況,對隨機數的具體應用做一下具體講解。一、隨機數函數解讀。1、生成0-1之間的隨機數。2、如果要快速再次生成隨機數,只需按F9鍵即可。解讀:Rand函數沒有參數,可以生成0-1之間的隨機數,其小數位數可以精確到小數點後15位。2、1-N,N-N之間的隨機數。