Random генерирует одни и те же значения - C#

Узнай цену своей работы

Формулировка задачи:

вот пример кода:
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);
        }
Скажите - почему у меня c и d - всегда одни и те же числа, хотя функция 2 раза вызвалась. если раскидать подсчёт с и d на разные кнопки, то числа будут разные. может быть в моём примере c=d, т.к. новый rand просто не успевает сгенерировать компьютер?

Решение задачи: «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);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы