How To - 如何產生一個隨機亂數?

如何產生一個隨機亂數?
這個議題包含了下面幾種可能:


  • 產生一個0~1的亂數
  • 產生一個0~N的亂數
  • 產生一個0~N的整數亂數
  • 產生一個M~N的整數亂數


以下是範例說明。


圖片程式版本:LabVIEW 2013


產生一個0~1的亂數
這個最簡單無懸念,直接使用 block diagram >> Programming >> Numeric >> Random Number (0-1)



產生一個0~N的亂數
這個也相對簡單,基本上沒有限制為整數,所以直接將上題利用乘法處理即可(產出不包含N)。



產生一個0~N的整數亂數
這個稍微麻煩一點點,主要是這種類型的需求,除了是整數之外,還須包含N,故需要將亂數的範圍擴大1之後,利用無條件捨去,才能達成0~N的亂數皆為等機率。無條件捨去在 block diagram >>  Programming >> Numeric >> Round Toward -Infinity





產生一個M~N的整數亂數
這個應用較為麻煩一點點點,一樣是利用亂數乘上 N-M+1之後再無條件捨去,才能達成M~N的亂數皆為等機率。





以上的方式皆是以機率性相等做處理,若不是使用 Round Toward -Infinity ,而是使用 Round to Nearest 元件,則最大及最小的數值產生機率會只有其他數值的一半