2012-02-12 59 views
0

如何可以生成長度Ñ的二元結果的流與相等數量的0的和1的,但有成對的結果的偏置頻率,即給定的變換率ķ(freq(01) + freq(10))/(freq(00) + freq(11)) = k生成的僞隨機流與熵參數

+0

每個可能的對 – 2012-02-12 16:19:15

回答

1

生成用下面的轉換概率的隨機馬爾可夫鏈:

 0  1 
0 1/(k+1) k/(k+1) 

1 k/(k+1) 1/(k+1) 

本質上,如果剛剛生成0℃,用概率產生0另一個1 /(K + 1)

注意:如果要保證要求,請使用以下方法

讓我們假設您想要生成mk個不等組合和m個相等組合。

  1. 讓reserve_eq = m和reserve_uneq = mk。
  2. 以相等的概率生成隨機比特0/1。讓CUR是位
  3. 輸出CUR
  4. 生成new_cur =(CUR,1-CUR)與加權概率(reserve_eq,reserve_uneq)
  5. 如果new_cur = CUR然後遞減reserve_eq,否則遞減reserve_uneq
  6. CUR = new_cur
  7. 轉到步驟3

在步驟4中退出如果兩個reserve_eq和reserve_uneq均爲零。輸出字符串的長度爲km + m + 1。

+0

我喜歡這樣的思路,但爲了保證* n *的要求已經達到了無限 – 2012-02-13 02:24:09

+0

@nick看到我的附加答案 – ElKamina 2012-02-13 03:03:39