2010-03-30 82 views
0

我想用隨機數做一個頻率表。 因此,我已經創建了生成0 9999之間和FreqTable隨機值(#C)

 public void FillArrayRandom(int[] T) 
    { 
     Random Rndint = new Random(); 

     for (int i=0; i < T.Length; i++) 
     { 
      T[i] = Rndint.Next(0, 9999); 
     } 
    }/*FillArrayRandom*/ 

11個隨機值我想要的結果是一樣的東西這一個陣列:(巴高度可達21)因此,這將是一個常數。

    * 
     *  * 
    *  *  *   (the highest value will have the largest row/bar) 
    *  * * * 
    0  1 2 3 .....(index value's) 
931 6669 10 8899 .... (up to 11 random values) 

我的問題是我該如何計算這11個隨機值之間的頻率? 酒吧應該有一個相對的關係,相互依賴於頻率。 我只想在我的程序中使用1個單個數組(對於生成的值)。

F =(F * 21?)/ ...?真的不知道如何獲得正確的結果。

如果頻率是> = 21 *寫入如果頻率是> = 20的寫*如果一個頻率是> = 19的寫*,依此類推,直到我達到1.(並顯示全表

Basicly我想每行打印的表格符合consolewrite(線)

等等

問候

+0

你的問題很混亂。頻率表列出了添加號碼的次數。如果您有兩次931,表格會在931位顯示2. 您的頻率是什麼意思? 如果你只有11個值,怎麼去21? – Carra 2010-03-30 13:45:15

+0

你的代碼也有點混亂。這聽起來像你需要兩個數組,一個用於11個隨機值,另一個用於從這11個rand值中填充?首先填充你的rand源數組,然後你的最終數組? – 2010-03-30 13:50:16

回答

0

要計算的頻率,你可以使用字典定義是這樣的:。

freqDict Dictionary<int, int> = new Dictionary<int, int>(); 

其中第一個整數(K)是與您的隨機值或其值在索引值中對應的鍵,無論哪種方式它必須是唯一的並且能夠引用特定值。第二個整數是值(V),它是每個鍵的計數。

接下來,遍歷隨機生成的值的數組,如果它沒有在字典中表示,請使用新的鍵添加它,並將值設置爲1.如果字典已經包含鍵,則只需將該值遞增1。這對於你的rand數組中的每個值,你將得到一個帶有頻率分佈的字典。