Szczególny generator pseudolosowy mt19937

Szczególny generator pseudolosowy mt19937
BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 80
0

Mam trzy wersje programu: pod Javę, pod C# i C++.
Program w C++ używa mt19937:

Kopiuj
mt19937 gen(0);
uniform_int_distribution<int> dis(-8, 8);
dis(gen)

Teraz chcę przetestować programu w Javie i C# w ten sposób że ustawiam ziarno na przykład na zero i używam dokładnie tego samego algorytmu generowania liczb pseudolosowych w celu uzyskania paru milionów dokładnie takich samych liczb.
Jak to zrobić w Javie i C#?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

W sensie czego konkretnie nie wiesz?

Jeśli wykorzystasz ten sam genertor w Javie oraz C# i wprowadzisz to samo ziarno - otrzymasz dokładnie te same liczby. Implementacja nie ma tutaj znaczenia (no - poza faktem, że musi być prawidłowa).

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 80
0

Wziąłem z Githuba, w C# i Javie , choć kilka implementacji dawało inne wyniki. Poza tym Java zwraca ujemne wartości, rzutowałem na long i dla ujemnych dodawałem 2^32

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.