Почему дважды вызванный рандомный метод дважды рандомит одинаково? - C#

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

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

Взгляните, есть метод рандомной генерации матрицы. Мы его дважды вызываем, и дважды получаем одну и туже матрицу, т.е. две одинаковых перед нами. Разве в двух вызовах не должны генерироваться разные матрицы, они ж рандомно создаются?
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. Console.WriteLine("Вторая работа");
  4. Console.Write("\nВведие рамерность матрицы u:");
  5. int u = int.Parse(Console.ReadLine());
  6. Console.Write("\nВведие рамерность матрицы y:");
  7. int y = int.Parse(Console.ReadLine());
  8. /*----------Создаем две матрицы----------------*/
  9. int[,] M = GetRandomArray(u, y);
  10. int[,] N = GetRandomArray(u, y);
  11. /*----------Выводим матрицы на печать----------*/
  12. Console.WriteLine("\nПервая матрица");
  13. PrintArray(M);
  14. Console.WriteLine("\nВторая матрица");
  15. PrintArray(N);
  16. }
  17. /*-----Здесь создается матрица размером заполненная случайными числами---*/
  18. static int[,] GetRandomArray(int rows, int cols)
  19. {
  20. Random random = new Random();
  21. var result = new int[rows, cols];
  22. for (int i = 0; i < rows; i++)
  23. for (int j = 0; j < cols; j++)
  24. result[i, j] = random.Next(-50, 50);
  25. return result;
  26. }
  27. /*-----------Выводим матрицу на экран----------*/
  28. static void PrintArray(int[,] array)
  29. {
  30. for (int i = 0; i < array.GetLength(0); i++)
  31. {
  32. for (int j = 0; j < array.GetLength(1); j++)
  33. {
  34. Console.Write("{0,5}", array[i, j]);
  35. }
  36. Console.WriteLine();
  37. }
  38. }

Решение задачи: «Почему дважды вызванный рандомный метод дважды рандомит одинаково?»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. using System.Security.Cryptography;
  7.  
  8. namespace ConsoleApplication3
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             for (int i = 0; i < 10000; i++)
  15.             {
  16.                 Console.WriteLine(RandomGenerator());
  17.             }
  18.             Console.ReadLine();
  19.         }
  20.         static string RandomGenerator()
  21.         {
  22.             byte[] b = new byte[1];
  23.             RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();
  24.             rand.GetBytes(b);
  25.             return b[0].ToString();
  26.         }
  27.     }
  28. }

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


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

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

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

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

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

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