Oracle中產生隨機數的函數(轉載)

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   2014   ar   

在Oracle中的DBMS_RANDOM程式包中封裝了一些產生隨機數和隨機字串的函數,其中常用的有以下兩個:

DBMS_RANDOM.VALUE函數

該函數用來產生一個隨機數,有兩種用法:

1. 產生一個介於0和1之間(不包含0和1)的38位精度的隨機數,文法為:

DBMS_RANDOM.VALUE RETURN NUMBER;

這種用法不包含參數。 

2. 產生一個介於指定範圍之內的38位精度的隨機數,文法為:

DBMS_RANDOM.VALUE(low IN  NUMBER,high IN NUMBER) RETURN NUMBER;

這種用法包含兩參數,參數low用來指定要產生的隨機數的下限,參數high指定上限,產生的隨機。請注意產生的隨機數有可能等於下限,但絕對小於上限,即“low<=隨機數<high”。 

舉個例子: 要產生一個1到100之間的數可以這樣寫: DBMS_RANDOM.VALUE(1,100)

DBMS_RANDOM.STRING函數

該函數產生一個隨機字串,文法為:

DBMS_RANDOM.STRING (opt IN CHAR,len IN NUMBER) RETURN VARCHAR2;

參數len指定產生的字串的長度。 

參數opt指定產生的字串的樣式,允許的取值及其表示的含義如下表所示:

舉個例子: 要產生一個長度為6且只包括大寫字母的字串,可以這樣寫: DBMS_RANDOM.STRING(‘U‘,6) 

附轉:“偽隨機數”和“隨機種子”

首先需要聲明的是,電腦不會產生絕對隨機的隨機數,電腦只能產生“偽隨機數”。其實絕對隨機的隨機數只是一種理想的隨機數,即使電腦怎樣發展,它也不會產生一串絕對隨機的隨機數。電腦只能產生相對的隨機數,即偽隨機數。

所謂的隨機數發生器都是通過一定的演算法對事先選定的隨機種子做複雜的運算,用產生的結果來近似 的類比完全隨機數,這種隨機數被稱作偽隨機數。偽隨機數是以相同的機率從一組有限的數字中選取的。所選數字並不具有完全的隨機性,但是從實用的角度而言, 其隨機程度已足夠了。偽隨機數的選擇是從隨機種子開始的,所以為了保證每次得到的偽隨機數都足夠地“隨機”,隨機種子的選擇就顯得非常重要。如果隨機種子 一樣,那麼同一個隨機數發生器產生的隨機數也會一樣。一般地,我們使用同系統時間有關的參數作為隨機種子。

轉載自:http://www.cnblogs.com/lgzslf/archive/2008/11/29/1343685.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.