algorytm.org

Implementacja w C#



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Generator Park-Miller - Implementacja w C#
Ocena użytkownikóww: *****  / 1
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 28 września 2008 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Park-Miller - cs/Class1.cs:
//generowanie liczb pseudolosowych
//generator Park-Miller
//www.algorytm.org (c) 2008 Tomasz Lubinski

using System;

namespace Park_Miller
{
	/// <summary>
	/// generowanie liczb pseudolosowych
	/// generator Park-Miller
	/// www.algorytm.org (c) 2008 Tomasz Lubinski
	/// </summary>
	class Class1
	{
		/* Definicje wspolczynnikow a oraz m */ 
		/* Dla tych wartosci wynik zawsze miesci sie w 46 bitach */
		private const ulong m = ((ulong)2 << 30)-1; /* 2^31-1 */
		private const ulong a = 16807;
	
		private static ulong x;

		/* Generator Park-Miller */
		public static ulong genRand()
		{
			x = (a*x) % m;

			return x;
		} 


		/// <summary>
		/// generowanie liczb pseudolosowych
		/// generator Park-Miller
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			int ii, n;

			Console.WriteLine("Podaj wartosc ziarna (seed)");
			x = ulong.Parse(Console.ReadLine());

			Console.WriteLine("Podaj ile liczb pseudolosowych wylosowac");
			n = int.Parse(Console.ReadLine());

  			for (ii=0; ii<n; ii++)
				Console.WriteLine(genRand());
		}
	}
}
Dodaj komentarz