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

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

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

вот пример кода:
Листинг программы
  1. double ran(double a)
  2. {
  3. Random rand = new Random();
  4. a = rand.NextDouble();
  5. return a;
  6. }
  7. double c = 0.0, d = 0.0;
  8. private void button1_Click(object sender, EventArgs e)
  9. {
  10. listBox1.Items.Clear();
  11. c = ran(c);
  12. d = ran(d);
  13. listBox1.Items.Add(c);
  14. listBox1.Items.Add(d);
  15. }
Скажите - почему у меня c и d - всегда одни и те же числа, хотя функция 2 раза вызвалась. если раскидать подсчёт с и d на разные кнопки, то числа будут разные. может быть в моём примере c=d, т.к. новый rand просто не успевает сгенерировать компьютер?

Решение задачи: «Random генерирует одни и те же значения»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsApp_Randomizer
  4. {
  5.     class Randomizer
  6.     {
  7.         static Random random;
  8.  
  9.         public Randomizer()
  10.         {
  11.             if (random == null)
  12.                 random = new Random();
  13.         }
  14.  
  15.         public double NextDouble()
  16.         {
  17.             return random.NextDouble();
  18.         }
  19.  
  20.         public int Next()
  21.         {
  22.             return random.Next();
  23.         }
  24.  
  25.         public int Next(int maxValue)
  26.         {
  27.             return random.Next(maxValue);
  28.         }
  29.  
  30.         public int Next(int minValue, int maxValue)
  31.         {
  32.             return random.Next(minValue, maxValue);
  33.         }
  34.  
  35.         public void NextBytes(byte[] buffer)
  36.         {
  37.             random.NextBytes(buffer);
  38.         }
  39.     }
  40. }

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


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

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

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы