Ошибка в рандоме - C#

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

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

Написал программу, которая сначала генерирует массивы по указанным опциям (размер, крайние значения), и показывает совпадения в процентах между ними, все работало, потом стала интересна корреляция статистики повторений в зависимости от кол-ва чисел между крайними значениями, написал код, который зацикливает все это дело и выдает среднее значение статистики повторений во всех случаях, все работает, но значения в массивах почему-то стали одни и те же, с редкими изменениями, хотя в рандоме ничего не трогал и близко.
using System;
 
namespace z2
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            {
                Console.WriteLine("Количество циклов?");
                int kolvocikl = Convert.ToInt32(Console.ReadLine());
                double q = 0;
                Console.WriteLine("Количество чисел в массиве?");
                int kolvo = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Нижняя черта?");
                int min = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Верхняя черта?");
                int max = Convert.ToInt32(Console.ReadLine());
                double luck;
                for (int u = 0; u <= kolvocikl; u++)
                {
                    Console.WriteLine("Цикл " + u);
                    Random x = new Random();
                    int[] array = new int[kolvo];
                    int i;
                    Console.WriteLine("Числа первого массива:");
                    for (i = 0; i < array.Length; i++)
                    {
                        array[i] = x.Next(min, max);
                        Console.WriteLine(array[i]);
                    }
                    int[] marray = new int[kolvo];
                    Console.WriteLine("Числа второго массива:");
                    Random n = new Random();
                    int k = Convert.ToInt32(marray.Length);
                    double o = (k / 100); //нахожу 1% от длины marray
                    double schetsovp = 0; //объявление переменной совпадающих строчек
                    for (int p = 0; p < marray.Length; p++)
                    {
                        marray[p] = n.Next(min, max);
                        Console.WriteLine(marray[p]);
                    }
                    for (int v = 0; v < marray.Length; v++)
                    {
                        for (int m = 0; m < array.Length; m++)
                        {
                            if (marray[v] == array[m])
                            {
                                schetsovp++;
                                break;
                            }
                        }
                    }
                    Array.Clear(array, 0, array.Length);
                    Array.Clear(marray, 0, marray.Length);
                    luck = (schetsovp / k);
                    q = q + luck;
                }
                Console.WriteLine(q * 100 / kolvocikl + "%");
                Console.ReadLine();
            }
        }
    }
}
Не кидайтесь сильно тапками если сильная ошибка, учусь программировать всего 5-ый день

Решение задачи: «Ошибка в рандоме»

textual
Листинг программы
for (int p = 0; p < marray.Length; p++)
{
 marray[p] = n.Next(min, max);
 Thread.Sleep(100);
 Console.WriteLine(marray[p]);
}

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


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

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

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