2010-09-05 54 views
1

我需要算法生成隨機複數請幫助我知道該怎麼生成隨機數,但隨機複數混淆我隨機複數

+6

你想要什麼分佈的隨機數來自? – 2010-09-05 08:59:13

+0

@Joey:你是什麼意思的時間間隔?複數不具有自然排序,所以沒有與實數相同的間隔。 – 2010-09-05 09:17:17

+1

@Joey:就像模數和論點一樣,但如果你用這些做一些天真的事情,即使這是想要的,你也不會得到一個統一的分佈。關鍵在於,如果不知道所需的分配方式,就不可能知道最佳方法。 – 2010-09-05 09:41:19

回答

8

我會簡單地生成兩個隨機數,並使用一個用於實部,一個用於虛部。

5
  1. 生成2張隨機數(X,Y)(使用內置rand/rnd/random class),其中x是實數部分,y是虛數部分。

  2. 創建一個複數類(具有一個構造函數實部和虛參數)

  3. 使用來自步驟1的2張隨機數來創建複雜的數字x + ý

0

1.產生兩個數字向量,一個是real_vector,另一個是imaginary_vector的大小,如MAX_SIZE,隨機生成不同的種子。

2.隨機使用任何分佈隨機移動向量(real_vector + imaginary_vector)中的數字讓我們說使用std :: random_shuffle(均勻分佈)。

3.隨機生成一個索引併爲MAX_SIZE應用模運算符,並從第一個數組中選擇索引,該索引將提供您的隨機數的實數部分。

4.使用步驟3獲得你的隨機數的虛部。

5.使用從步驟3和步驟4獲得的編號創建一個複數,並存儲在一個容器中。

6.go到第3步,檢查你是否想要更復雜的數字;如果沒有,然後中斷;