Random генерирует одни и те же значения - C#
Формулировка задачи:
вот пример кода:
Скажите - почему у меня c и d - всегда одни и те же числа, хотя функция 2 раза вызвалась.
если раскидать подсчёт с и d на разные кнопки, то числа будут разные.
может быть в моём примере c=d, т.к. новый rand просто не успевает сгенерировать компьютер?
double ran(double a)
{
Random rand = new Random();
a = rand.NextDouble();
return a;
}
double c = 0.0, d = 0.0;
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
c = ran(c);
d = ran(d);
listBox1.Items.Add(c);
listBox1.Items.Add(d);
}Решение задачи: «Random генерирует одни и те же значения»
textual
Листинг программы
using System;
namespace ConsApp_Randomizer
{
class Randomizer
{
static Random random;
public Randomizer()
{
if (random == null)
random = new Random();
}
public double NextDouble()
{
return random.NextDouble();
}
public int Next()
{
return random.Next();
}
public int Next(int maxValue)
{
return random.Next(maxValue);
}
public int Next(int minValue, int maxValue)
{
return random.Next(minValue, maxValue);
}
public void NextBytes(byte[] buffer)
{
random.NextBytes(buffer);
}
}
}