2017-04-10 106 views
2

我需要一種方法來查找和計算此RNG的重複數字。C#計數重複數字

因此,當我按下按鈕像500次它需要計算的時間相同的數字apeared任何想法? (在Visial工作室打造2017年C#)

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Alpha_rng 
{ 
public partial class RNG : Form 
{ 
    private int number; 
    public RNG() 
    { 
     InitializeComponent(); 
    } 

    public int tal { get; private set; } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Random slumpGenerator = new Random(); 
     int tal; 
     tal = slumpGenerator.Next(0, 1000); 
     textBox1.Text = tal.ToString(); 
     if (tal <= 10) 
      MessageBox.Show ("Nat 5"); 
     if (tal >= 11 && tal <= 100) 
      MessageBox.Show("Nat 4"); 
     else 
      MessageBox.Show("Nat 3"); 
    } 
    } 
} 
+0

你的問題太籠統了,你沒有解釋你不能做什麼,或者你嘗試過什麼方法,並遇到了問題。 – SpaceUser7448

+0

它應該自動計算我按下按鈕後出現的重複數字,如果讓我說5次按後我得到相同的數字,它應該計算它發生的次數,也寫下數字可以說134重複計數3 12重複計數2我不知道我怎麼可以這個特定的 – Rayoth

+0

GhostCat解決方案工作障礙。 – Rayoth

回答

1

簡單:

  • 每個循環過程中創建一個空表
  • :存儲在該列表中

然後隨機數;在每次迭代期間;或者在500次運行後:迭代該列表;並尋找您需要的信息。你可以例如對列表進行排序;然後看看你是否有具有相同價值的「子列表」。

創建列表可以那麼容易,因爲:

List<int> list = new List<int>(); 
list.Add(2); 

上列出的例子見here

除此之外;你當然可以使用「先進」的東西;如地圖。地圖鍵代表隨機值;並且地圖值將是計數器。換句話說:你畫一個數字;然後你檢查那張地圖。如果地圖已經有條目,只需增加該計數器即可;如果不;您爲該密鑰添加1的值。與排序/迭代值列表相比,這更有效率!

+0

哦,我的感覺就像是一個簡單的解決方案,想着最好的感謝就會嘗試一下。 – Rayoth

+0

謝謝,該死的,有點讓我困擾,我在複雜的事情,簡單的你只是救了我很多挫折時間。 – Rayoth

+0

會更容易? var numberList = Enumerable.Range(1,1000).ToList() – Rayoth

0

static int count = 0;

protected void Button1_Click(object sender, EventArgs e) 

{ 

    count++; 

    messagebox.show(count); 

} 
+0

'靜態'? **爲什麼?** –

+0

我們可以在任何地方使用它,只要試試這個 – Mulwaffer

+0

默認選擇'static'是一種不好的做法。如果您創建兩個實例,那麼這兩個表單將共享計數字段,這使得不可能重用該表單。 _「\t 我們可以在任何地方使用它」_你的意思是當你公開創建它時。 –