新四季網

隨機數的生成及獲取方法和裝置與流程

2023-09-21 10:34:20


本申請涉及計算機技術領域,尤其涉及一種隨機數的生成及獲取方法和裝置。



背景技術:

隨著隨機數在計算機領域應用越來越廣,對產生的隨機數有越來越高的要求。目前,常用隨機數產生的方法有兩種,一種是軟體方式,用系統時間作為隨機數產生的種子,再根據系統函數產生隨機數。另一種是硬體方式,設計產生隨機數的硬體設備,根據隨機信號產生隨機數。

但是,軟體使用系統默認的隨機數生成方法存在以下缺點:如果在同一時間點(同一秒,或者同一毫秒)下,產生的隨機數重複概率很高,從而導致隨機數分布不均衡,即產生偽隨機數。因為,在計算機應用系統中,使用時間做為隨機數產生的種子,在較短時間內,例如在相同毫秒或秒數的時間段內生產的隨機數,因時間種子數相等。因此生成的隨機數會存在重複率高,且分布不均衡的缺點。



技術實現要素:

本申請的目的旨在至少在一定程度上解決上述的技術問題之一。

為此,本申請的第一個目的在於提出一種隨機數的生成方法,該方法通過生成包括n個存儲單元存儲隨機數的隨機數存儲數組,接著對隨機數存儲數組中的存儲單元進行隨機混排,當接收隨機數獲取指令時,從隨機數存儲數組中對應的存儲單元讀取隨機數,通過該申請實施例,可以在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡,因此本申請的隨機數生成方法具有較好的隨機性。

本申請的第二個目的在於提出了一種隨機數的生成裝置。

本申請的第三個目的在於提出了一種隨機數的獲取方法。

本申請的第四個目的在於提出了一種隨機數的獲取裝置。

為達上述目的,根據本申請第一方面實施例提出的一種隨機數的生成方法,包括以下步驟:生成隨機數存儲數組,其中,所述隨機數存儲數組包括n個存儲單元,每個所述存儲單元存儲一個隨機數,其中,n為正整數;對所述隨機數存儲數組中的存儲單元進行隨機混排;以及接收隨機數獲取指令,並根據所述隨機數獲取指令從所述隨機數存儲數組中 對應的存儲單元中讀取所述存儲單元存儲的隨機數。

通過本申請實施例的隨機數生成方法,首先生成包括n個存儲單元且每個存儲單元存儲一個隨機數的隨機數存儲數組,接著對隨機數存儲數組中的存儲單元進行隨機混排,從而可以在接收到隨機數獲取指令時,從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於在隨機數存儲數組中對存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡。因此本申請的隨機數生成方法具有較好的隨機性。

在本申請的一個實施例中,所述n個存儲單元中存儲的隨機數均不相同。

在本申請的一個實施例中,所述的隨機數的生成方法,每個所述存儲單元具有標識值,其中,所述對所述隨機數存儲數組中的存儲單元進行混排具體包括:根據隨機函數生成隨機值,並根據所述隨機值生成待調換存儲單元的標識值;以及根據所述標識值和預設調換規則將所述待調換存儲單元與目標存儲單元中的隨機數進行調換。

在本申請的一個實施例中,所述根據隨機函數生成隨機值具體包括:當i大於1且小於n時,根據當前時間和第i-1次隨機值生成第i次隨機值,其中,i為調換次數;當i等於1時,根據當前時間生成所述第i次隨機值。

在本申請的一個實施例中,所述預設調換規則為:當進行第i次調換時,將第i次隨機值對應的存儲單元與第(n+1-i)存儲單元中的隨機數進行調換。

在本申請的一個實施例中,所述根據所述隨機數獲取指令從所述隨機數存儲數組中對應的存儲單元中讀取所述存儲單元存儲的隨機數具體包括:根據所述隨機數獲取指令獲取當前已被讀取的存儲單元的標識值;根據所述當前已被讀取的存儲單元的標識值讀取下一個存儲單元存儲的隨機數。

為達上述目的,根據本申請的第二方面實施例提出的一種隨機數的生成裝置,包括:生成模塊,用於生成隨機數存儲數組,其中,所述隨機數存儲數組包括n個存儲單元,每個所述存儲單元存儲一個隨機數,其中,n為正整數;隨機混排模塊,用於對所述隨機數存儲數組中的存儲單元進行隨機混排;以及讀取模塊,用於接收隨機數獲取指令,並根據所述隨機數獲取指令從所述隨機數存儲數組中對應的存儲單元中讀取所述存儲單元存儲的隨機數。

本申請實施例的隨機數生成裝置,首先生成模塊生成包括n個存儲單元且每個存儲單元存儲一個隨機數的隨機數存儲數組,接著隨機混排模塊對隨機數存儲數組中的存儲單元進行隨機混排,從而讀取模塊可以在在接收到隨機數獲取指令時,從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於隨機混排模塊對隨機數存儲數組中的存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且 分布均衡。因此本申請的隨機數生成裝置具有較好的隨機性。

在本申請的一個實施例中,所述n個存儲單元中存儲的隨機數均不相同。

在本申請的一個實施例中,所述的隨機數的生成裝置,每個所述存儲單元具有標識值,其中,所述隨機混排模塊包括:標識值生成子模塊,用於根據隨機函數生成隨機值,並根據所述隨機值生成待調換存儲單元的標識值;以及調換子模塊,用於根據所述標識值和預設調換規則將所述待調換存儲單元與目標存儲單元中的隨機數進行調換。

在本申請的一個實施例中,所述的隨機數的生成裝置,當i大於1且小於n時,所述標識值生成子模塊根據當前時間和第i-1次隨機值生成第i次隨機值,其中,i為調換次數;當i等於1時,所述標識值生成子模塊根據當前時間生成所述第i次隨機值。

在本申請的一個實施例中,所述預設調換規則為:當進行第i次調換時,將第i次隨機值對應的存儲單元與第(n+1-i)存儲單元中的隨機數進行調換。

在本申請的一個實施例中,所述讀取模塊具體包括:獲取子模塊,用於根據所述隨機數獲取指令獲取當前已被讀取的存儲單元的標識值;讀取子模塊,用於根據所述當前已被讀取的存儲單元的標識值讀取下一個存儲單元存儲的隨機數。

為達上述目的,根據本申請的第三方面實施例提出的一種隨機數的獲取方法,包括以下步驟:接收隨機數獲取指令,並獲取隨機數存儲數組,其中,所述隨機數存儲數組包括n個存儲單元,每個所述存儲單元存儲一個隨機數,且所述隨機數存儲數組中的n個存儲單元的位置通過隨機混排確定,其中,n為正整數;根據所述隨機數獲取指令從所述隨機數存儲數組中對應的存儲單元中獲取所述存儲單元存儲的隨機數。

通過本申請實施例的隨機數獲取方法,首先接收到隨機數獲取指令,接著獲取隨機數存儲數組並通過隨機混排確定隨機數存儲數組中的n個存儲單元的位置,從而根據接收到隨機數獲取指令從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於在隨機數存儲數組中對存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡。因此本申請的隨機數獲取方法具有較好的隨機性。

在本申請的一個實施例中,所述n個存儲單元中存儲的隨機數均不相同。

在本申請的一個實施例中,所述的隨機數的獲取方法,每個所述存儲單元具有標識值,其中,通過以下步驟對所述隨機數存儲數組中的n個存儲單元的位置通過隨機混排:根據隨機函數生成隨機值,並根據所述隨機值生成待調換存儲單元的標識值;以及根據所述標識值和預設調換規則將所述待調換存儲單元與目標存儲單元中的隨機數進行調換。

在本申請的一個實施例中,所述根據所述隨機數獲取指令從所述隨機數存儲數組中對應的存儲單元中獲取所述存儲單元存儲的隨機數具體包括:根據所述隨機數獲取指令獲取當前已被讀取的存儲單元的標識值;根據所述當前已被讀取的存儲單元的標識值獲取下一 個存儲單元存儲的隨機數。

為達上述目的,根據本申請的第四方面實施例提出的一種隨機數的獲取裝置,包括:接收模塊,用於接收隨機數獲取指令;隨機數存儲數組獲取模塊,用於獲取隨機數存儲數組,其中,所述隨機數存儲數組包括n個存儲單元,每個所述存儲單元存儲一個隨機數,且所述隨機數存儲數組中的n個存儲單元的位置通過隨機混排確定,其中,n為正整數;隨機數獲取模塊,用於根據所述隨機數獲取指令從所述隨機數存儲數組中對應的存儲單元中獲取所述存儲單元存儲的隨機數。

通過本申請實施例的隨機數獲取裝置,首先接收模塊接收到隨機數獲取指令,接著隨機數存儲數組獲取模塊獲取隨機數存儲數組並通過隨機混排確定隨機數存儲數組中的n個存儲單元的位置,從而隨機數獲取模塊根據接收到隨機數獲取指令從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於在隨機數存儲數組中對存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡。因此本申請的隨機數獲取裝置具有較好的隨機性。

在本申請的一個實施例中,所述n個存儲單元中存儲的隨機數均不相同。

在本申請的一個實施例中,所述隨機數獲取模塊具體包括:第一獲取子模塊,用於根據所述隨機數獲取指令獲取當前已被讀取的存儲單元的標識值;第二獲取子模塊,用於根據所述當前已被讀取的存儲單元的標識值獲取下一個存儲單元存儲的隨機數。

本申請附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。

附圖說明

本申請的上述和/或附加的方面和優點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:

圖1是根據本申請一個實施例的隨機數的生成方法的流程圖;

圖2是根據本申請一個實施例的獲取隨機數的流程圖;

圖3是根據本申請一個實施例對隨機數存儲數組中的存儲單元進行隨機混排的方法流程圖;

圖4是本申請一個實施例的隨機數的生成裝置的結構示意圖;

圖5是根據本申請另一個實施例的隨機數的生成裝置的結構示意圖;以及

圖6是根據本申請又一個實施例的隨機數的生成裝置的結構示意圖;

圖7是根據本申請一個實施例的隨機數的獲取方法的流程圖;

圖8根據本申請一個實施例的隨機數的獲取裝置的結構示意圖;

圖9是根據本申請另一個實施例的隨機數的獲取裝置的結構示意圖。

具體實施方式

下面詳細描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用於解釋本申請,而不能理解為對本申請的限制。

本申請通過隨機混排的方式對隨機數存儲數組裡的存儲單元進行隨機混排,使得隨機數存儲數組中的隨機數順序完全隨機,從而解決了傳統隨機函數較大概率出現重複導致分布不平衡的問題。在需要獲取隨機數時,可以從該隨機數存儲數組中獲取對應的隨機數。

圖1是根據本申請一個實施例的隨機數的生成方法的流程圖。

如圖1所示,本申請實施例的隨機數的生成方法包括以下步驟:

s110,生成隨機數存儲數組,其中,隨機數存儲數組包括n個存儲單元,每個存儲單元存儲一個隨機數,其中,n為正整數。

在本申請的實施例中,n個存儲單元中存儲的隨機數均不相同。

可以理解的是,在本申請的實施例中,生成的隨機數存儲數組中對應的存儲單元存儲的隨機數是不重複的,例如,一個存儲單元存儲的一個隨機數是2,那麼其它存儲單元存儲的隨機數都不是2。

在本申請的實施例中,n個存儲單元可以分別存儲1至n個整數,從而每個存儲單元存儲的隨機數與其他的均不同。

在本申請的另一個實施例中,隨機數存儲數組的長度是可以配置的,根據需要對隨機數存儲數組的長度提前進行設置。

s120,對隨機數存儲數組中的存儲單元進行隨機混排。

需要說明的是,本申請實施例所述的隨機混排是指對隨機數存儲數組中n個存儲單元存儲的隨機數進行隨機調換,從而使得存儲單元中存儲的隨機數的順序完全隨機,從而解決現有技術中隨機函數較大概率出現重複導致分布不平衡的問題。在本申請的實施例中,可以採用多種方式對n個存儲單元存儲的隨機數進行隨機調換,在後續的實施例中將對這些方式進行詳細介紹。對於本領域技術人員而言,可採用多種方式對隨機數存儲數組中存儲的隨機數進行隨機混排,從而達到隨機數的順序完全隨機的目的,因此並不限於本申請以下實施例所提到的隨機調換的算法,任何能夠達到上述目的的算法均應包含在本申請的保護範圍之內。

s130,接收隨機數獲取指令,並根據隨機數獲取指令從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。

具體而言,在本申請的實施例中,接收隨機數獲取指令之後,可以順序地從隨機數存儲數組中依次讀取對應的隨機數,也可以隨機地從隨機數存儲數組中依次讀取對應的隨機數。當然在本申請的實施例中,還可以採用其他的方式從隨機數存儲數組中讀取對應的隨機數。

具體地,在本申請的一個具體實施例中,在接收到隨機數獲取指令之後,根據隨機數獲取指令獲取當前已被讀取的存儲單元的標識值(即上一次被讀取的存儲單元的標識值),根據當前已被讀取的存儲單元的標識值讀取下一個存儲單元存儲的隨機數。

需要說明的是,在每一次接收到隨機數獲取指令之後,進一步判斷已被讀取的存儲單元是否為隨機數存儲數組中的最後一個存儲單元。如果不是隨機數存儲數組中的最後一個存儲單元,則繼續讀取下一個存儲單元存儲的隨機數。如果是隨機數存儲數組中的最後一個存儲單元,則需要重新生成新的隨機數存儲數組,即執行步驟s110。

本申請實施例的隨機數的生成方法,首先生成包括n個存儲單元且每個存儲單元存儲一個隨機數的隨機數存儲數組,接著對隨機數存儲數組中的存儲單元進行隨機混排,從而可以在接收到隨機數獲取指令時,從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於在隨機數存儲數組中對存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡,因此本申請的隨機數生成方法具有較好的隨機性。

為了使得本領域的技術人員能夠更加清楚地了解本申請的獲取隨機數流程,下面結合圖2具體說明。如圖2所示:

s210,接收隨機數獲取指令。

s220,判斷當前已被讀取的存儲單元是否為隨機數存儲數組的最後一個。

具體而言,在每一次接收到隨機數獲取指令之後,進一步判斷當前已被讀取的存儲單元是否為隨機數存儲數組中的最後一個存儲單元。如果不是隨機數存儲數組中的最後一個存儲單元,則繼續讀取下一個存儲單元存儲的隨機數。

s230,如果判斷當前已被讀取的存儲單元是隨機數存儲數組的最後一個,初始化隨機數存儲數組,需要重新生成新的隨機數存儲數組。

具體而言,確定當前已被讀取的存儲單元是隨機數存儲數組的最後一個,即隨機數存儲數組中的所有存儲單元存儲的隨機數都已經被讀取過,則需要對隨機數存儲數組進行初始化,從而重新生成新的隨機數存儲數組。

在本申請的實施例中,如果確定當前的存儲單元不是隨機數存儲數組的最後一個,則直接根據隨機數獲取指令從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。

s240,對隨機數存儲數組中的存儲單元進行隨機混排,即循環打亂隨機數存儲數組中的每個存儲單元的位置。

在本申請的實施例中,循環打亂隨機數存儲數組中的每個存儲單元的位置,從而可以使得存儲單元中存儲的隨機數的順序完全隨機,進而解決現有技術中隨機函數較大概率出現重複導致分布不平衡的問題。在本申請的實施例中,可以採用多種方式對n個存儲單元存儲的隨機數進行隨機調換,從而達到隨機數的順序完全隨機的目的,因此並不限於本申請實施例。

s250,根據上次獲取的存儲單元的標識值,選擇隨機數存儲數組中下一個存儲單元存儲的數據作為當前要獲取隨機數。

具體地,根據隨機數獲取指令獲取當前已被讀取的存儲單元的標識值(即上一次被讀取的存儲單元的標識值),根據當前已被讀取的存儲單元的標識值讀取下一個存儲單元存儲的隨機數,例如可以順序地讀取。

需要說明的是,還可以採用其他的方式從隨機數存儲數組中讀取對應的隨機數,不限於本申請實施例的順序地從隨機數存儲數組中依次讀取對應的隨機數。

為了使得本申請中對隨機數的生成方法的描述更加的具體化,可以結合java語言的程序秒數進行說明,具體如下:

首先初始化一個隨機數存儲數組,定義存儲單元獲取標識值和隨機數存儲數組長度。接收隨機數指令後,判斷當前的存儲單元是否隨機數存儲數組的最後一個,判斷當前的存儲單元不是隨機數存儲數組的最後一個時,需要重新生成隨機數存儲數組,進而循環將隨機數存儲數組中的存儲單元順序打亂,最後根據上次獲取的存儲單元的標識值,選擇隨機數存儲數組中下一個存儲單元存儲的數據作為當前要獲取隨機數。

需要說明的是,本申請的隨機數的生成方法不限於基於java語言實現,可以使用其他計算機語言實現。

本申請實施例的隨機數的生成方法,首先生成包括n個存儲單元且每個存儲單元存儲一個隨機數的隨機數存儲數組,接著對隨機數存儲數組中的存儲單元進行隨機混排,從而可以在接收到隨機數獲取指令時,從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於在隨機數存儲數組中對存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡,因此本申請的隨機數生成方法具有較好的隨機性。

為了使得本領域的技術人員能夠更加清楚地了解本申請中對隨機數存儲數組中的存儲單元進行隨機混排的方法,下面結合圖3進行具體說明。如圖3所示:

s310,根據當前時間和隨機函數生成隨機值,其中,每個存儲單元具有標識值。該標 識值是用於區分存儲單元的標識,在本申請的實施例中,在初始狀態(即隨機混排之前)存儲單元的標識值可以與存儲單元中存儲的隨機數可以相等。

需要說明的是,在該步驟s310中生成的隨機值與存儲單元中存儲的隨機數的概念並不相同,該步驟生成的隨機值用於確定待調換存儲單元的標識值。

具體而言,當i大於1且小於n時,根據當前時間和第i-1次隨機值生成第i次隨機值;而當i等於1時,根據當前時間生成第i次隨機值,其中,i為調換次數。也就是說,當第一次生成隨機值時,根據當前時間生成隨機值,當不是第一次生成隨機值時,根據當前時間和第i-1次隨機值生成第i次隨機值。

在本申請的實施例中,生成隨機數存儲數組後,每個存儲單元具有標識值,根據隨機函數生成隨機值,並根據隨機值生成待調換存儲單元的標識值,從而確定需要調換的存儲單元。

s320,根據標識值和預設調換規則將待調換存儲單元與目標存儲單元中的隨機數進行調換。

當進行第i次調換時,將第i次隨機值對應的存儲單元與第(n+1-i)存儲單元中的隨機數進行調換。

舉例而言,生成隨機數存儲數組後,每個存儲單元具有標識值,標識值能夠區別不同的存儲單元。當i為1時,根據當前時間生成第1次隨機值,並根據第1次隨機值生成待調換存儲單元的標識值,根據預設調換規則,把第1次隨機值對應的存儲單元和第n存儲單元中的隨機數進行調換,即將第1次隨機值對應的存儲單元中的隨機數存儲於第n存儲單元中,並將第n存儲單元中的隨機數存儲於第1次隨機值對應的存儲單元中。當i為2時,根據當前時間和第1次隨機值生成第2次隨機值,並根據第2次隨機值生成待調換存儲單元的標識值,根據預設調換規則,把第2次隨機值對應的存儲單元和第n-1存儲單元中的隨機數進行調換,即將第2次隨機值對應的存儲單元中的隨機數存儲於第n-1存儲單元中,並將第n-1存儲單元中的隨機數存儲於第2次隨機值對應的存儲單元中。以此循環,直到所有隨機數存儲數組中的存儲單元存儲的隨機數完成調換。在上述實施例中,將第1次調換計算的標識值的存儲單元與第n存儲單元先進行調換。在本申請的其他實施例中,也可以從第一存儲單元先開始進行調換。

舉例而言,初始化一個隨機數存儲數組randarry[]。對隨機數存儲數組中的每個存儲單元用自然數賦值。例如,randarry[0]=1,randarry[1]=2…randarry[n-1]=n。循環打亂隨機數存儲數組中的每個存儲單元的位置。例如,可以採用每次隨機數存儲數組中的每個存儲單元存儲的值與倒數第i個存儲單元存儲的值交換,i從n-1遞減,例如randarry[1]=2與randarry[n-1]=n替換。

需要說明的是,本申請實施例的將存儲單元中的隨機數進行調換的方法只是預設調換規則的一種,即可以根據實際需要對預設調換規則進行設置,通過不同的調換方法對存儲單元中的隨機數進行調換。

s330,判斷隨機數存儲數組中的存儲單元是否全部被調換過。

s340,如果隨機數存儲數組中的存儲單元全部被調換過,則確定存儲單元中存儲的隨機數的順序完全隨機,因此,該隨機數存儲數組可供使用。

具體而言,確定隨機數存儲數組中n個存儲單元中存儲的隨機數已經全部進行調換,根據隨機數獲取指令獲取當前已被讀取的存儲單元的標識值;根據當前已被讀取的存儲單元的標識值讀取下一個存儲單元存儲的隨機數。

需要說明的是,可以採用其他的方式從隨機數存儲數組中讀取對應的隨機數,不限於本申請實施例的順序地從隨機數存儲數組中依次讀取對應的隨機數。

本申請實施例的隨機數的生成方法,首先生成包括n個存儲單元且每個存儲單元存儲一個隨機數的隨機數存儲數組,接著對隨機數存儲數組中的存儲單元進行隨機混排,從而可以在接收到隨機數獲取指令時,從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於在隨機數存儲數組中對存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡,因此本申請的隨機數生成方法具有較好的隨機性。

與上述實施例提供的隨機數生成方法相對應,本發明的一種實施例還提供一種隨機數生成裝置,由於本發明實施例提供的隨機數生成裝置與上述幾種實施例提供的隨機數生成方法具有相同或相似的技術特徵,因此在前述隨機數生成方法的實施方式也適用於本實施例提供的隨機數生成裝置,在本實施例中不再詳細描述。如圖4所示,該隨機數的生成裝置可包括:生成模塊110、隨機混排模塊120、讀取模塊130。

其中,生成模塊110用於生成隨機數存儲數組,其中,隨機數存儲數組包括n個存儲單元,每個存儲單元存儲一個隨機數,其中,n為正整數。

在本申請的一個實施例中,n個存儲單元中存儲的隨機數均不相同。

隨機混排模塊120用於對隨機數存儲數組中的存儲單元進行隨機混排。

讀取模塊130用於接收隨機數獲取指令,並根據隨機數獲取指令從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。

在本申請的一個實施例中,圖5是根據本申請另一個實施例的隨機數的生成裝置的結構示意圖,即在如圖4所示的基礎上,如圖5所示,隨機混排模塊120具體包括標識值生成子模塊1201和調換子模塊1202。具體地,在本申請的一個實施例中,標識值生成子模塊1201用於根據隨機函數生成隨機值,並根據隨機值生成待調換存儲單元的標識值。調換 子模塊1202用於根據標識值和預設調換規則將待調換存儲單元與目標存儲單元中的隨機數進行調換。

在本申請的一個實施例中,當i大於1且小於n時,標識值生成子模塊1201根據當前時間和第i-1次隨機值生成第i次隨機值,其中,i為調換次數。當i等於1時,標識值生成子模塊1201根據當前時間生成第i次隨機值。

在本申請的一個實施例中,預設調換規則為:當進行第i次調換時,將第i次隨機值對應的存儲單元與第(n+1-i)存儲單元中的隨機數進行調換。

在本申請的一個實施例中,接收隨機數獲取指令後,判斷當前的存儲單元是否為隨機數存儲數組的最後一個,如果不是隨機數存儲數組中的最後一個存儲單元,則繼續讀取下一個存儲單元存儲的隨機數。如果是隨機數存儲數組中的最後一個存儲單元,則需要重新生成新的隨機數存儲數組。

在本申請的一個實施例中,圖6是根據本申請又一個實施例的隨機數的生成裝置的結構示意圖,在如圖4所示的基礎上,讀取模塊130具體包括:獲取子模塊1301和讀取子模塊1302。

具體地,獲取子模塊1301用於根據隨機數獲取指令獲取當前已被讀取的存儲單元的標識值。讀取子模塊1302用於根據當前已被讀取的存儲單元的標識值讀取下一個存儲單元存儲的隨機數。

本申請實施例的隨機數生成裝置,首先生成模塊生成包括n個存儲單元且每個存儲單元存儲一個隨機數的隨機數存儲數組,接著隨機混排模塊對隨機數存儲數組中的存儲單元進行隨機混排,從而讀取模塊可以在在接收到隨機數獲取指令時,從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於隨機混排模塊對隨機數存儲數組中的存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡。因此本申請的隨機數生成裝置具有較好的隨機性。

圖7是根據本申請一個實施例的隨機數的獲取方法的流程圖,本申請實施例示出的隨機數的獲取方法從獲取方面進行描述。如圖7所示,該隨機數的獲取方法包括以下步驟。

s710,接收隨機數獲取指令,並獲取隨機數存儲數組,其中,隨機數存儲數組包括n個存儲單元,每個存儲單元存儲一個隨機數,且隨機數存儲數組中的n個存儲單元的位置通過隨機混排確定,其中,n為正整數。

在本申請的實施例中,n個存儲單元中存儲的隨機數均不相同。

在本申請的實施例中,n個存儲單元可以分別存儲1至n個整數,從而每個存儲單元存儲的隨機數與其他的均不同。

在本申請的另一個實施例中,隨機數存儲數組的長度是可以配置的,根據需要對隨機 數存儲數組的長度提前進行設置。

在本申請的實施例中,生成隨機數存儲數組後,每個存儲單元具有標識值,根據隨機函數生成隨機值,並根據隨機值生成待調換存儲單元的標識值,從而確定需要調換的存儲單元。

在本申請的實施例中,根據標識值和預設調換規則將待調換存儲單元與目標存儲單元中的隨機數進行調換。

需要說明的是,本申請實施例的將存儲單元中的隨機數進行調換的方法只是預設調換規則的一種,即可以根據實際需要對預設調換規則進行設置,通過不同的調換方法對存儲單元中的隨機數進行調換。

s720,根據隨機數獲取指令從隨機數存儲數組中對應的存儲單元中獲取存儲單元存儲的隨機數。

具體地,在本申請的一個具體實施例中,在接收到隨機數獲取指令之後,根據隨機數獲取指令獲取當前已被讀取的存儲單元的標識值(即上一次被讀取的存儲單元的標識值),根據當前已被讀取的存儲單元的標識值讀取下一個存儲單元存儲的隨機數。

本申請實施例的隨機數獲取方法,首先接收到隨機數獲取指令,接著獲取隨機數存儲數組並通過隨機混排確定隨機數存儲數組中的n個存儲單元的位置,從而根據接收到隨機數獲取指令從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於在隨機數存儲數組中對存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡。因此本申請的隨機數獲取方法具有較好的隨機性。

與上述實施例提供的隨機數獲取方法相對應,本發明的一種實施例還提供一種隨機數獲取裝置,由於本發明實施例提供的隨機數獲取裝置與上述幾種實施例提供的隨機數獲取方法具有相同或相似的技術特徵,因此在前述隨機數獲取方法的實施方式也適用於本實施例提供的隨機數獲取裝置,在本實施例中不再詳細描述。如圖8所示,該隨機數的獲取裝置可包括:接收模塊210、隨機數存儲數組獲取模塊220、隨機數獲取模塊230。

其中,接收模塊210用於接收隨機數獲取指令。

隨機數存儲數組獲取模塊220用於獲取隨機數存儲數組,其中,隨機數存儲數組包括n個存儲單元,每個存儲單元存儲一個隨機數,且隨機數存儲數組中的n個存儲單元的位置通過隨機混排確定,其中,n為正整數。

在本申請的一個實施例中,n個存儲單元中存儲的隨機數均不相同。

隨機數獲取模塊230用於根據隨機數獲取指令從隨機數存儲數組中對應的存儲單元中獲取存儲單元存儲的隨機數。

在本申請的一個實施例中,圖9是根據本申請另一個實施例的隨機數的獲取裝置的結 構示意圖,即在如圖8所示的基礎上,如圖9所示,隨機數獲取模塊230具體包括第一獲取子模塊2301用於根據隨機數獲取指令獲取當前已被讀取的存儲單元的標識值。第二獲取子模塊2302用於根據當前已被讀取的存儲單元的標識值獲取下一個存儲單元存儲的隨機數。

本申請實施例的隨機數獲取裝置,首先接收模塊接收到隨機數獲取指令,接著隨機數存儲數組獲取模塊獲取隨機數存儲數組並通過隨機混排確定隨機數存儲數組中的n個存儲單元的位置,從而隨機數獲取模塊根據接收到隨機數獲取指令從隨機數存儲數組中對應的存儲單元中讀取存儲單元存儲的隨機數。由於在隨機數存儲數組中對存儲單元進行了隨機混排,從而實現了在較短的單位時間內多次獲取的隨機數重複率低,且分布均衡。因此本申請的隨機數獲取裝置具有較好的隨機性。

在本申請的描述中,需要理解的是,術語「第一」、「第二」僅用於描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特徵的數量。由此,限定有「第一」、「第二」的特徵可以明示或者隱含地包括至少一個該特徵。在本申請的描述中,「多個」的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。

在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本申請的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特徵進行結合和組合。

流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用於實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,並且本申請的優選實施方式的範圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本申請的實施例所屬技術領域的技術人員所理解。

應當理解,本申請的各部分可以用硬體、軟體、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟體或固件來實現。例如,如果用硬體來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用於對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現場可編程門陣列(fpga)等。

本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。

此外,在本申請各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以採用硬體的形式實現,也可以採用軟體功能模塊的形式實現。所述集成的模塊如果以軟體功能模塊的形式實現並作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。

上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。儘管上面已經示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領域的普通技術人員在本申請的範圍內可以對上述實施例進行變化、修改、替換和變型。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀