私が作成したクラスに属するオブジェクトのインスタンスを多数生成するプログラムで作業しています。これらのオブジェクトのすべてには乱数のリストが含まれていると考えられ、オブジェクトごとに異なるランダムなリストが必要です。現在私は、クラスの定義の中の乱数のための種を作成します(以下を参照)。したがって、私はすべてのオブジェクトで同じリストを取得します。C#の乱数の問題のバリエーション
乱数生成の仕組みを理解しています(同様の問題について他の多くの回答を読んだことがあります)。そのため、種子がすべて近すぎて生成されているという問題があります。しかし、私はこのクラスのオブジェクトを使用するたびに使用される単一の静的なシードを作成する方法を知らない。新しいオブジェクトをインスタンス化するときに、静的乱数のシードを引数として使用する方法はありますか?または、より良い解決策がありますか?
ありがとうございました。
public class Room
{
static System.Random x = new System.Random();
public List<int> birthdays = new List<int>();
public int year;
public Room(int y)
{
year = y;
}
public void Fill(int j)
{
System.Console.WriteLine(x.Next(1, year));
birthdays.Add(x.Next(1, year));
}
public bool Check(int p, int d, int j)
{
for (int q = 0; q < j; q++)
{
int total = 0;
for (int y = 0; y < j; y++)
{
if (birthdays[y] - birthdays[q] <= d) { total += 1; };
if (total >= p)
{ return true; }
}
}
return false;
}
}
「確認」は何ですか?そのようなパラメータには名前を付けないでください。 'p'、' d'、 'j'はちょうど混乱し、自己記述的ではありません。 –