Hallo Liste, hallo Frank,
Du schriebst:
Davon abgesehen, sind beide eigentlich nur nötig, wenn "hochqualitativer Zufall" benötigt wird, z.B. für Kryptographie. Für normale Anwendungsfälle (Spiele usw.; ich weiß natürlich nicht, ob das auf dein Programm zutrifft) reicht ein Pseudo-Zufallsgenerator (PRNG). Einen solchen hat GPC (wie die meisten Programmiersprachen) schon eingebaut, und man kann mit "Random (n)" eine ganzzahlige Zufallszahl von 0 bis n - 1 einschließlich erzeugen. In deinem Fall wäre (wenn sinnvoll) also "Random (NotenZahl) + 1" möglich.
Danke, das werde ich vorläufig benutzen (hatte ich auch früher schon einmal, aber seit /dev/random völlig vergessen ...
Die Vorteile gegenüber /dev/[u]random sind u.a. einfacherer Code, höhere Portabilität (s.o.; GPC verwendet zwar /dev/urandom zur Initialisierung des PRNG wenn vorhanden, sonst aber auch andere Mechanismen, ohne dass sich der Programmierer darum kümmern muss; auch Portabilität zwischen Compilern, da z.B. auch BP und andere Random unterstützen) und schnellerer Code (zum einen muss nicht für jede Zufallszahl eine (Pseudo-)Datei gelesen werden, sondern eben nur einmal bei der ersten Verwendung, zum anderen gegenüber /dev/random, das u.a. auf externe zufällige Ereignisse wartet, um besten Zufall zu erzeugen, was daher eben nur verwendet werden sollte, wenn wirklich nötig, z.B. zur Schlüsselerzeugung).
Wie schon in der anderen E-Mail gesagt, Portabilität spielt in diesem Fall keine Rolle, schnellerer Code weiß ich noch nicht ...
Ein Spiel ist es nicht. Ich hatte nur gedacht, WENN ich schon Zufall benutze, dann so echt wie es überhaupt geht ...
Den Compiler-Bug muss ich mir mal anschauen ...
Dann war meine vielleicht nicht ganz sachgemäße Verwendung von /dev/random ja immerhin zu etwas gut! :-)
Danke und Fröhliche Grüße Roland