PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shellskript rnd (Random-Generator)



K-Town
28-03-2007, 16:42
Hallo,

ich habe ein Problem. Ich möchte gerne einen Random-Generator rnd, der folgendermaßen aufgerufen wird: rnd N in emacs programmieren.
rnd erzeugt eine Randomzahl zwischen 0 und N-1 und gibt sie in die Standardausgabe aus. Ist N nicht angegeben, so wird N = 100 eingesetzt.
Nun zur Randomzahl:
Zunächst hole ich mir ''zufällige'' Zahlen, z.B. Minuten und Sekunden aus date und die Prozeßid des Skriptprozesses ($$).
Anschließend soll mit Hilfe von expr und einigen arithmetischen Operationen eine neue Zahl z herauskomen.
Diese Zahl z modulo N rechnen, d.h. z % N. Dadurch bekommt man eine Zahl im Bereich 0 bis N-1, und dieses ist die gesuchte Randomzahl.
Sukzessive Aufrufe von rnd würden also etwa so aussehen:
rnd
17
rnd
3
rnd
51
rnd
12
rnd
98

Ich komme einfach auf keine Lösung. Geschweige denn einen Ansatz.
Kann mir da vielleicht einer helfen?

bischi
28-03-2007, 16:59
Das sollte weiterhelfen:

http://en.wikipedia.org/wiki//dev/urandom
http://en.wikipedia.org/wiki//dev/random

MfG Bischi

peschmae
28-03-2007, 19:30
Im ABS-Guide (http://www.tldp.org/LDP/abs/html/randomvar.html#EX21) ist natürlich auch ein Beispiel - das verwendet dann die bash-interne Random-Funktion die in Gestalt der Variablen $RANDOM eingesetzt werden kann.

MfG Peschmä