Почему дважды вызванный рандомный метод дважды рандомит одинаково? - C#
Формулировка задачи:
Взгляните, есть метод рандомной генерации матрицы. Мы его дважды вызываем, и дважды получаем одну и туже матрицу, т.е. две одинаковых перед нами. Разве в двух вызовах не должны генерироваться разные матрицы, они ж рандомно создаются?
static void Main(string[] args) { Console.WriteLine("Вторая работа"); Console.Write("\nВведие рамерность матрицы u:"); int u = int.Parse(Console.ReadLine()); Console.Write("\nВведие рамерность матрицы y:"); int y = int.Parse(Console.ReadLine()); /*----------Создаем две матрицы----------------*/ int[,] M = GetRandomArray(u, y); int[,] N = GetRandomArray(u, y); /*----------Выводим матрицы на печать----------*/ Console.WriteLine("\nПервая матрица"); PrintArray(M); Console.WriteLine("\nВторая матрица"); PrintArray(N); } /*-----Здесь создается матрица размером заполненная случайными числами---*/ static int[,] GetRandomArray(int rows, int cols) { Random random = new Random(); var result = new int[rows, cols]; for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) result[i, j] = random.Next(-50, 50); return result; } /*-----------Выводим матрицу на экран----------*/ static void PrintArray(int[,] array) { for (int i = 0; i < array.GetLength(0); i++) { for (int j = 0; j < array.GetLength(1); j++) { Console.Write("{0,5}", array[i, j]); } Console.WriteLine(); } }
Решение задачи: «Почему дважды вызванный рандомный метод дважды рандомит одинаково?»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { for (int i = 0; i < 10000; i++) { Console.WriteLine(RandomGenerator()); } Console.ReadLine(); } static string RandomGenerator() { byte[] b = new byte[1]; RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider(); rand.GetBytes(b); return b[0].ToString(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д