0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    private static Random randy = new Random();
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    public void Button_Clicked(object sender, EventArgs e)
    {
        int count = 7;

        for (int i = 1; i < count; i++)
           // if (i == count)
        {
            int myInt = nextNo();

            string myNum = String.Format("{0}\t", myInt.ToString());
            TextBox1.Text += myNum;
            TextBox2.Text = ("These are your numbers fsdjio"); 
        }
    }

    int nextNo()
    {
        return randy.Next(1, 45);
    }
} 

強いテキスト

問題は、重複した番号が頻繁に取得されることです。数字が同じでない場合にのみループを進行させる方法はありますか? ありがとう

for ループと Random クラスを使用して、6 つの数字を持つ宝くじプログラムを作成しています。ただし、繰り返し番号が表示されることがよくあります。6 つの異なる数字になるまでプロセス全体が繰り返されるようにコーディングする必要がありますか? ここに初めてのポスターをありがとう

4

2 に答える 2

2

私の意見では、ループ全体をやり直すべきではありません。次のようにしてください。

var set = new HashSet<int>();
for (int i = 0; i < n; i++)
{
    while(!set.Add(nextNo()));
}
于 2012-04-05T09:55:22.707 に答える
1

ランダムな一意の番号は必要ありません。既存の数値セットをシャッフルする必要があります。このトピックに関するSOgoogleに関する多くの質問 (および回答) があります。フィッシャー イェーツ シャッフルアルゴリズムを検索して、固有の数のセットで使用します。

于 2012-04-05T10:05:34.627 に答える