Почему дважды вызванный рандомный метод дважды рандомит одинаково? - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д