2012-01-24 144 views
0

我正在寫一個應用程序,我需要每天範圍內的一個持久隨機整數。這個數字應該是不同的,但對於每一天都是持久的。產量應儘可能一致,但分銷質量不一定是最好的。我更喜歡這個問題的簡單和「足夠好」的解決方案。每天在一個範圍內生成一個隨機整數

我可以使用什麼樣的算法?

輸入:當天(例如,一個整數,表示日以來,一些劃時代) 輸出:X和Y

之間的隨機整數謝謝。

編輯:我工作的平臺沒有種子PRNG實施。

回答

0

算法:

  1. 種子RNG與當前日
  2. 生成一個隨機數
  3. 國防部Ÿ,加X

使用更智能的算法,如果更換第三步你想要一致的概率。

編輯:好的,你沒有PRNG。然後,您可能想要將一些哈希算法應用到當前日期並將其視爲一個隨機數。

+0

謝謝,我應該補充說,據我所知,我工作的平臺沒有原生種子PRNG。 – rokit

+0

@rokit:那麼你可能希望將散列算法應用到當前日期,並將其視爲一個隨機數。 –

+0

@rokit:您能否添加那條信息「我工作的平臺沒有原生種子PRNG」來解決世界其他地區的原始問題?謝謝:-) – Oliver

0

我不確定您是要自己編寫算法還是隻需要編程解決方案。

對於後者,你可以沿着這些線路使用的東西:

new Random((DateTime.Today - new DateTime(1970,1,1)).Days) 
    .Next(min, max) 

這是在C#中,但你的想法:

  • 使用一個固定的開始日期
  • 算上以後的日子裏那麼
  • 使用該天數作爲seed用於隨機數發生器
  • 使用效用函數在您的界限內獲得一個數字,例如
相關問題