Ошибка в рандоме - C#
Формулировка задачи:
Написал программу, которая сначала генерирует массивы по указанным опциям (размер, крайние значения), и показывает совпадения в процентах между ними, все работало, потом стала интересна корреляция статистики повторений в зависимости от кол-ва чисел между крайними значениями, написал код, который зацикливает все это дело и выдает среднее значение статистики повторений во всех случаях, все работает, но значения в массивах почему-то стали одни и те же, с редкими изменениями, хотя в рандоме ничего не трогал и близко.Не кидайтесь сильно тапками если сильная ошибка, учусь программировать всего 5-ый день
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(); } } } }
Решение задачи: «Ошибка в рандоме»
textual
Листинг программы
for (int p = 0; p < marray.Length; p++) { marray[p] = n.Next(min, max); Thread.Sleep(100); Console.WriteLine(marray[p]); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д