srand_deterministic() gibts für sowas Anwendungen?

mogbo

Banned
Guten Morgen,

vorweg sorry, wär eigentlich in Geplauder besser aufgehoben aber ist doch irgendwie OpenBSD spezifisch?!

Code:
The rand() function returns a result in the range of 0 to RAND_MAX.  By
  default, this result comes from arc4random(3).  If srand_deterministic()
  was called, the result will be computed using the deterministic
  algorithm.
Manpage: https://man.openbsd.org/rand.3

Um mit rand() ein deterministisches ( = wiederholbares ist in dem Fall glaube ich die beste Übersetzung) Ergebnis zu erhalten, sollte man srand_deterministic() mit einem seed callen. Wer macht sowas?^^ Gibts für srand_deterministic() eine sinnvolle Anwendung und soll nicht nur (falsch) programmierten Müll retten?
 
Oser (automatisierte) Tests, die bei jedem Lauf ein gleiches Ergebnis bringen müssen.
 
Code:
1701By default,
1702.Xr arc4random 3
1703is used to produce values.
1704If the variable
1705.Ev RANDOM
1706is assigned a value, the value is used as the seed to
1707.Xr srand_deterministic 3
1708and subsequent references of
1709.Ev RANDOM
1710produce a predictable sequence.
http://bxr.su/OpenBSD/bin/ksh/ksh.1
Danke für den Link, ganz schick zum Code lesen

Oser (automatisierte) Tests, die bei jedem Lauf ein gleiches Ergebnis bringen müssen.
Ah okay, klingt abstrakt, aber logisch

Deterministisch heißt vorhersehbar, nicht wiederholbar. Es gibt genau ein möglichen Folgezustand.
Code:
Ein deterministischer Algorithmus ist ein Algorithmus, bei dem nur definierte und reproduzierbare Zustände auftreten.
https://de.wikipedia.org/wiki/Determinismus_(Algorithmus)


Habs aus diesem Satz interpretiert, war mir anfangs nämlich nicht ganz sicher, wie das gemeint war. Hab mich sogar ganz im Gegenteil gewundert, warum bei Linux immer gleiche Zahlen rauskommen^^

Führt der gleiche seed nicht immer zum gleichen Ergebnis auf der gleichen Maschine?
 
Zurück
Oben