Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.27 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApplication2
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             var freq = new int[20];
  10.             var rng = new RandomNumberGenerator();
  11.             for (int i = 0; i < 100; i++)
  12.             {
  13.                 var rnd = rng.Next(20);
  14.                 freq[rnd] += 1;
  15.                 Console.Write("{0}, ", rnd);
  16.             }
  17.  
  18.             Console.WriteLine("Done.");
  19.             for (int i = 0; i < 20; i++)
  20.             {
  21.                 Console.Write("{0}={1}\t", i, freq[i]);
  22.             }
  23.             Console.ReadLine();
  24.         }
  25.     }
  26.  
  27.  
  28.     class RandomNumberGenerator
  29.     {
  30.         private const long m = 4294967296; // aka 2^32
  31.         private const long a = 1664525;
  32.         private const long c = 1013904223;
  33.         private long _last;
  34.  
  35.         public RandomNumberGenerator()
  36.         {
  37.             _last = DateTime.Now.Ticks % m;
  38.         }
  39.  
  40.         public RandomNumberGenerator(long seed)
  41.         {
  42.             _last = seed;
  43.         }
  44.  
  45.         public long Next()
  46.         {
  47.             _last = ((a * _last) + c) % m;
  48.  
  49.             return _last;
  50.         }
  51.  
  52.         public long Next(long maxValue)
  53.         {
  54.             return Next() % maxValue;
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement