Thorsten Glaser schrieb:
Roland Goretzki dixit:
Also, wenn das wirklich ein Fehler im Compiler ist, dürfte mir ja urandom auch nicht helfen, da die Fehlerquelle dann wahrscheinlich nicht mit der Wahl des GerÀtes beseitigt wird.
Ne, aber /dev/random gibts nicht überall bzw. hat andere Nutzung, während /dev/urandom auf wesentlich mehr Plattformen existiert oder emuliert wird.
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.
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).
Den Compiler-Bug muss ich mir mal anschauen ...
Frank