TWI671645B - 隨機數的生成及獲取方法和裝置 - Google Patents

隨機數的生成及獲取方法和裝置 Download PDF

Info

Publication number
TWI671645B
TWI671645B TW106101909A TW106101909A TWI671645B TW I671645 B TWI671645 B TW I671645B TW 106101909 A TW106101909 A TW 106101909A TW 106101909 A TW106101909 A TW 106101909A TW I671645 B TWI671645 B TW I671645B
Authority
TW
Taiwan
Prior art keywords
random number
random
storage unit
storage
value
Prior art date
Application number
TW106101909A
Other languages
English (en)
Other versions
TW201734836A (zh
Inventor
文家祥
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201734836A publication Critical patent/TW201734836A/zh
Application granted granted Critical
Publication of TWI671645B publication Critical patent/TWI671645B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Abstract

本申請公開了一種隨機數的生成及獲取方法和裝置,其中,該生成方法包括:生成隨機數儲存陣列,其中,隨機數儲存陣列包括N個儲存單元,每個儲存單元儲存一個隨機數,其中,N為正整數;對隨機數儲存陣列中的儲存單元進行隨機混排;以及接收隨機數獲取指令,並根據隨機數獲取指令從隨機數儲存陣列中對應的儲存單元中讀取儲存單元儲存的隨機數。透過該申請實施例,可以在較短的單位時間內多次獲取的隨機數重複率低,且分佈均衡,因此本申請的隨機數產生方法及裝置具有較好的隨機性。

Description

隨機數的生成及獲取方法和裝置
本申請係關於電腦技術領域,尤其關於一種隨機數的生成及獲取方法和裝置。
隨著隨機數在電腦領域應用越來越廣,對產生的隨機數有越來越高的要求。目前,常用隨機數產生的方法有兩種,一種是軟體方式,用系統時間作為隨機數產生的種子,再根據系統函數產生隨機數。另一種是硬體方式,設計產生隨機數的硬體設備,根據隨機信號產生隨機數。
但是,軟體使用系統預設的隨機數產生方法存在以下缺點:如果在同一時間點(同一秒,或者同一毫秒)下,產生的隨機數重複機率很高,從而導致隨機數分佈不均衡,即產生偽隨機數。因為,在電腦應用系統中,使用時間做為隨機數產生的種子,在較短時間內,例如在相同毫秒或秒數的時間段內生產的隨機數,因時間種子數相等。因此生成的隨機數會存在重複率高,且分佈不均衡的缺點。
本申請的目的旨在至少在一定程度上解決上述的技術問題之一。
為此,本申請的第一個目的在於提出一種隨機數的生成方法,該方法透過生成包括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個儲存單元中儲存 的隨機數均不相同。
在本申請的一個實施例中,所述隨機數獲取模組具體包括:第一獲取子模組,用於根據所述隨機數獲取指令獲取當前已被讀取的儲存單元的標識值;第二獲取子模組,用於根據所述當前已被讀取的儲存單元的標識值獲取下一個儲存單元儲存的隨機數。
本申請附加的態樣和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或透過本申請的實踐瞭解到。
110‧‧‧生成模組
120‧‧‧隨機混排模組
130‧‧‧讀取模組
1201‧‧‧標識值生成子模組
1202‧‧‧調換子模組
1301‧‧‧獲取子模組
1302‧‧‧讀取子模組
210‧‧‧接收模組
220‧‧‧隨機數儲存陣列獲取模組
230‧‧‧隨機數獲取模組
2301‧‧‧第一獲取子模組
2302‧‧‧第二獲取子模組
本申請的上述和/或附加的態樣和優點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:圖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)等。
本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以透過程式來指令相關的硬體完成,所述的程式可以儲存於一種電腦可讀儲存媒體中,該程式在執行時,包括方法實施例的步驟之一或其組合。
此外,在本申請各個實施例中的各功能單元可以集成在一個處理模組中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模組中。上述集成的模組既可以採用硬體的形式實現,也可以採用軟體功能模組的形式實現。所述集成的模組如果以軟體功能模組的形式實現並作為獨立的產品銷售或使用時,也可以儲存在一個電腦可讀取儲存媒體中。
上述提到的儲存媒體可以是唯讀記憶體,磁片或光碟等。儘管上面已經示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領域的普通技術人員在本申請的範圍內可以對上述實施例進行變化、修改、替換和變型。

Claims (16)

  1. 一種隨機數的生成方法,其特徵在於,包括以下步驟:生成隨機數儲存陣列,其中,該隨機數儲存陣列包括N個儲存單元,每個該儲存單元儲存一個隨機數,其中,N為正整數;對該隨機數儲存陣列中的儲存單元進行隨機混排;以及接收隨機數獲取指令,並根據該隨機數獲取指令從該隨機數儲存陣列中對應的儲存單元中讀取該儲存單元儲存的隨機數,其中,每個該儲存單元具有標識值,其中,所述對該隨機數儲存陣列中的儲存單元進行隨機混排具體包括:根據隨機函數生成隨機值,並根據該隨機值生成待調換儲存單元的標識值;以及根據該標識值和預設調換規則將該待調換儲存單元與目標儲存單元中的隨機數進行調換。
  2. 如申請專利範圍第1項所述的隨機數的生成方法,其中,該N個儲存單元中儲存的隨機數均不相同。
  3. 如申請專利範圍第1項所述的隨機數的生成方法,其中,所述根據隨機函數生成隨機值具體包括:當i大於1且小於N時,根據當前時間和第i-1次隨機值生成第i次隨機值,其中,i為調換次數;當i等於1時,根據當前時間生成該第i次隨機值。
  4. 如申請專利範圍第1項所述的隨機數的生成方法,其中,該預設調換規則為:當進行第i次調換時,將第i次隨機值對應的儲存單元與第(N+1-i)儲存單元中的隨機數進行調換。
  5. 如申請專利範圍第1項所述的隨機數的生成方法,其中,所述根據該隨機數獲取指令從該隨機數儲存陣列中對應的儲存單元中讀取該儲存單元儲存的隨機數具體包括:根據該隨機數獲取指令獲取當前已被讀取的儲存單元的標識值;根據該當前已被讀取的儲存單元的標識值讀取下一個儲存單元儲存的隨機數。
  6. 一種隨機數的生成裝置,其特徵在於,包括:生成模組,用於生成隨機數儲存陣列,其中,該隨機數儲存陣列包括N個儲存單元,每個該儲存單元儲存一個隨機數,其中,N為正整數;隨機混排模組,用於對該隨機數儲存陣列中的儲存單元進行隨機混排;以及讀取模組,用於接收隨機數獲取指令,並根據該隨機數獲取指令從該隨機數儲存陣列中對應的儲存單元中讀取該儲存單元儲存的隨機數,其中,每個該儲存單元具有標識值,其中,該隨機混排模組包括:標識值生成子模組,用於根據隨機函數生成隨機值,並根據該隨機值生成待調換儲存單元的標識值;以及調換子模組,用於根據該標識值和預設調換規則將該待調換儲存單元與目標儲存單元中的隨機數進行調換。
  7. 如申請專利範圍第6項所述的隨機數的生成裝置,其中,該N個儲存單元中儲存的隨機數均不相同。
  8. 如申請專利範圍第6項所述的隨機數的生成裝置,其中,當i大於1且小於N時,該標識值生成子模組根據當前時間和第i-1次隨機值生成第i次隨機值,其中,i為調換次數;當i等於1時,該標識值生成子模組根據當前時間生成該第i次隨機值。
  9. 如申請專利範圍第6項所述的隨機數的生成裝置,其中,該預設調換規則為:當進行第i次調換時,將第i次隨機值對應的儲存單元與第(N+1-i)儲存單元中的隨機數進行調換。
  10. 如申請專利範圍第6項所述的隨機數的生成裝置,其中,該讀取模組具體包括:獲取子模組,用於根據該隨機數獲取指令獲取當前已被讀取的儲存單元的標識值;讀取子模組,用於根據該當前已被讀取的儲存單元的標識值讀取下一個儲存單元儲存的隨機數。
  11. 一種隨機數的獲取方法,其特徵在於,包括以下步驟:接收隨機數獲取指令,並獲取隨機數儲存陣列,其中,該隨機數儲存陣列包括N個儲存單元,每個該儲存單元儲存一個隨機數,且該隨機數儲存陣列中的N個儲存單元的位置通過隨機混排確定,其中,N為正整數;根據該隨機數獲取指令從該隨機數儲存陣列中對應的儲存單元中獲取該儲存單元儲存的隨機數,其中,每個該儲存單元具有標識值,其中,透過以下步驟對該隨機數儲存陣列中的N個儲存單元的位置通過隨機混排:根據隨機函數生成隨機值,並根據該隨機值生成待調換儲存單元的標識值;以及根據該標識值和預設調換規則將該待調換儲存單元與目標儲存單元中的隨機數進行調換。
  12. 如申請專利範圍第11項所述的隨機數的獲取方法,其中,該N個儲存單元中儲存的隨機數均不相同。
  13. 如申請專利範圍第11項所述的隨機數的獲取方法,其中,所述根據該隨機數獲取指令從該隨機數儲存陣列中對應的儲存單元中獲取該儲存單元儲存的隨機數具體包括:根據該隨機數獲取指令獲取當前已被讀取的儲存單元的標識值;根據該當前已被讀取的儲存單元的標識值獲取下一個儲存單元儲存的隨機數。
  14. 一種隨機數的獲取裝置,其特徵在於,包括:接收模組,用於接收隨機數獲取指令;隨機數儲存陣列獲取模組,用於獲取隨機數儲存陣列,其中,該隨機數儲存陣列包括N個儲存單元,每個該儲存單元儲存一個隨機數,且該隨機數儲存陣列中的N個儲存單元的位置通過隨機混排確定,其中,N為正整數;隨機數獲取模組,用於根據該隨機數獲取指令從該隨機數儲存陣列中對應的儲存單元中獲取該儲存單元儲存的隨機數,其中,每個該儲存單元具有標識值,其中,透過以下步驟對該隨機數儲存陣列中的N個儲存單元的位置通過隨機混排:根據隨機函數生成隨機值,並根據該隨機值生成待調換儲存單元的標識值;以及根據該標識值和預設調換規則將該待調換儲存單元與目標儲存單元中的隨機數進行調換。
  15. 如申請專利範圍第14項所述的隨機數的獲取裝置,其中,該N個儲存單元中儲存的隨機數均不相同。
  16. 如申請專利範圍第14項所述的隨機數的獲取裝置,其中,該隨機數獲取模組具體包括:第一獲取子模組,用於根據該隨機數獲取指令獲取當前已被讀取的儲存單元的標識值;第二獲取子模組,用於根據該當前已被讀取的儲存單元的標識值獲取下一個儲存單元儲存的隨機數。
TW106101909A 2016-03-17 2017-01-19 隨機數的生成及獲取方法和裝置 TWI671645B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??201610152995.2 2016-03-17
CN201610152995.2A CN107203365B (zh) 2016-03-17 2016-03-17 随机数的生成及获取方法和装置

Publications (2)

Publication Number Publication Date
TW201734836A TW201734836A (zh) 2017-10-01
TWI671645B true TWI671645B (zh) 2019-09-11

Family

ID=59850088

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106101909A TWI671645B (zh) 2016-03-17 2017-01-19 隨機數的生成及獲取方法和裝置

Country Status (8)

Country Link
US (3) US10691415B2 (zh)
EP (2) EP3751410B1 (zh)
JP (1) JP6793747B2 (zh)
CN (1) CN107203365B (zh)
ES (1) ES2847287T3 (zh)
PL (1) PL3432137T3 (zh)
TW (1) TWI671645B (zh)
WO (1) WO2017157197A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203365B (zh) * 2016-03-17 2020-09-08 阿里巴巴集团控股有限公司 随机数的生成及获取方法和装置
CN110390855A (zh) * 2018-04-16 2019-10-29 王金环 一种基于双重随机算法的课堂提问与计分系统
CN110647287A (zh) * 2018-06-26 2020-01-03 北京兆易创新科技股份有限公司 存储器的数据存储方法、装置、电子设备和存储介质
CN110069242A (zh) * 2019-04-26 2019-07-30 迅付信息科技有限公司 一种随机数发生器及电子券、动态支付码的生成方法
CN110505523B (zh) * 2019-09-24 2020-06-30 广州优视云集科技有限公司 一种视频转码优先级顺序控制方法及处理终端
CN113138751B (zh) * 2020-01-17 2023-06-09 北京新能源汽车股份有限公司 一种随机数的处理方法、装置及汽车
JP7446923B2 (ja) * 2020-06-02 2024-03-11 キオクシア株式会社 半導体装置及び半導体記憶装置
CN111966844B (zh) * 2020-08-17 2023-09-26 北京像素软件科技股份有限公司 一种对象的加载方法、装置及存储介质
CN113157249B (zh) * 2021-04-22 2023-09-08 北京奇艺世纪科技有限公司 标识号生成方法、装置、电子设备及存储介质
CN113485676A (zh) * 2021-07-08 2021-10-08 上海通联金融服务有限公司 随机生成信用卡号的方法及系统
US20230205531A1 (en) * 2021-12-23 2023-06-29 Intel Corporation Random data usage
CN117827148A (zh) * 2023-12-30 2024-04-05 北京海泰方圆科技股份有限公司 一种随机数生成方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541508A (zh) * 2010-12-29 2012-07-04 鸿富锦精密工业(深圳)有限公司 真随机数产生系统及方法
US20130304781A1 (en) * 2012-05-08 2013-11-14 Caringo, Inc. Generation of seed value for pseudo random number generator
US20140146607A1 (en) * 2011-06-03 2014-05-29 Kabushiki Kaisha Toshiba Semiconductor memory device for pseudo-random number generation
WO2016095555A1 (zh) * 2014-12-15 2016-06-23 飞天诚信科技股份有限公司 一种多种子动态令牌的工作方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153173A (ja) 1997-08-07 1999-02-26 Nec Corp 擬似乱数発生方法及び装置
US6760739B2 (en) * 2001-03-01 2004-07-06 Corrent Corporation Pipelined digital randomizer based on permutation and substitution using data sampling with variable frequency and non-coherent clock sources
US7197142B2 (en) * 2001-08-24 2007-03-27 Alten Alexander I System and methods for a vernam stream cipher
FR2829643A1 (fr) * 2001-09-12 2003-03-14 Everbee Wireless Ltd Procede pour generer des nombres aleatoires
US7236996B2 (en) * 2003-12-05 2007-06-26 John McCann Methods for generating random numbers
JP2005228169A (ja) 2004-02-16 2005-08-25 Bittech Inc 乱数生成装置
JP2006155168A (ja) * 2004-11-29 2006-06-15 Hitachi Ltd 乱数生成方法及びシステム
CN101105742A (zh) * 2006-07-10 2008-01-16 致伸科技股份有限公司 随机数产生器及随机数产生方法
JP4351731B2 (ja) * 2006-10-31 2009-10-28 清人 由井 擬似乱数発生装置、擬似乱数発生プログラム及び擬似乱数発生プログラムを記録した媒体
JP4308293B2 (ja) * 2007-11-20 2009-08-05 際国 董 乱数生成装置及び方法
US20100005133A1 (en) * 2008-07-04 2010-01-07 Samsung Electronics Co. Ltd. Apparatus and method for generating permutation sequence in a broadband wireless communication system
CN103034471B (zh) * 2012-12-10 2016-06-01 杜海洋 一种随机数的生成方法及系统
CN103645882A (zh) * 2013-12-09 2014-03-19 中颖电子股份有限公司 基于单片机的批量乱序随机数的生成方法
CN107203365B (zh) 2016-03-17 2020-09-08 阿里巴巴集团控股有限公司 随机数的生成及获取方法和装置
JP7299740B2 (ja) 2019-04-08 2023-06-28 キヤノン株式会社 シート撮像装置、シート判別装置および画像形成装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541508A (zh) * 2010-12-29 2012-07-04 鸿富锦精密工业(深圳)有限公司 真随机数产生系统及方法
US20140146607A1 (en) * 2011-06-03 2014-05-29 Kabushiki Kaisha Toshiba Semiconductor memory device for pseudo-random number generation
US20130304781A1 (en) * 2012-05-08 2013-11-14 Caringo, Inc. Generation of seed value for pseudo random number generator
WO2016095555A1 (zh) * 2014-12-15 2016-06-23 飞天诚信科技股份有限公司 一种多种子动态令牌的工作方法

Also Published As

Publication number Publication date
PL3432137T3 (pl) 2021-08-02
US11182129B2 (en) 2021-11-23
EP3432137A4 (en) 2019-11-13
JP6793747B2 (ja) 2020-12-02
EP3751410B1 (en) 2022-01-26
WO2017157197A1 (zh) 2017-09-21
CN107203365A (zh) 2017-09-26
EP3432137A1 (en) 2019-01-23
TW201734836A (zh) 2017-10-01
EP3751410A1 (en) 2020-12-16
US10929103B2 (en) 2021-02-23
US20190012147A1 (en) 2019-01-10
EP3432137B1 (en) 2020-10-14
ES2847287T3 (es) 2021-08-02
US20200319854A1 (en) 2020-10-08
US20210216285A1 (en) 2021-07-15
JP2019512805A (ja) 2019-05-16
US10691415B2 (en) 2020-06-23
CN107203365B (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
TWI671645B (zh) 隨機數的生成及獲取方法和裝置
JP7018517B2 (ja) ブロックチェーン上のスマートコントラクトの検証方法、装置、記憶媒体、及びプログラム
US7779273B2 (en) Booting a multiprocessor device based on selection of encryption keys to be provided to processors
US7774617B2 (en) Masking a boot sequence by providing a dummy processor
US7594104B2 (en) System and method for masking a hardware boot sequence
US9529684B2 (en) Method and system for hardware implementation of uniform random shuffling
US8539009B2 (en) Parallel true random number generator architecture
US20070288738A1 (en) System and method for selecting a random processor to boot on a multiprocessor system
JP2018509833A (ja) サイドチャネル解析抵抗アーキテクチャ
WO2007141112A1 (en) System and method for secure boot across a plurality of processors
JP2019512805A5 (zh)
US9317252B2 (en) Methods, systems, and computer readable media for selecting numbers from multiple ranges
US10229467B2 (en) Model anti-collusion watermark
JP2019097167A (ja) 最適な競合化戦略を使用した効率的な遅延ベースのpuf実装
WO2020220251A1 (zh) 区块链系统数据处理方法和区块的生成方法
CN103823720A (zh) 用于同步代码的发散区域中的线程的系统和方法
CN109481935A (zh) 游戏数据处理方法及装置
JP2017029827A5 (zh)
JP2016135404A5 (zh)
JP2014222394A (ja) 半導体記憶装置および乱数発生器
KR20210061245A (ko) 블록체인에서의 병렬적 블록 처리 방법, 이를 이용하는 블록체인 노드 및 프로그램
CN109471610B (zh) 一种串行随机数生成方法、装置和存储介质
Carayol et al. How Good Is a Strategy in a Game with Nature?
CN114499846A (zh) 验证节点分配方法、装置、设备及存储介质
CN107911756A (zh) 一种视频地址生成方法及装置