Ich bezweifle sehr, "absolut jeder" hat Ihren Ausdruck mit 37.
Warum 37? Man kann die Hypothese aufstellen, dass einige Pseudozufallsgeneratoren Sequenzen von verdächtiger Qualität aus trivialen Anfangssamen (wie [0,0,0 ...] + aktuelle_Zeit) geben und daher einige ausreichend groß auswählen (aber nicht zu groß, um einen Überlauf zu vermeiden)) Primzahl und verwenden Sie ein Vielfaches davon, um mehr nicht-trivialen Samen zu erhalten. Man kann immer noch argumentieren, ob es in diesem Seed genug Entropie geben wird, und ich würde diesen Ausdruck für eine fortgeschrittene Verwendung (Kryptographie oder sogar einige Monte-Carlo-Simulationen) vermeiden.
Um sicher zu sein, müssen Sie diejenigen Leute fragen, die mit diesem bestimmten Ausdruck kamen.
Würden andere Werte wie 31 oder 41 ähnlich funktionieren? Das glaube ich sehr. Sie können sie ausprobieren und sehen, aber Sie können unterschiedliche Ergebnisse von verschiedenen Compilern erwarten, die verschiedene Generatoren verwenden. Sie können auch eine andere Kombination von noch größeren Primzahlen verwenden und nicht nur Vielfache von einem, es gibt viele Möglichkeiten ...
Wenn Sie jedes Mal einen anderen Startwert erhalten möchten, können Sie auch die Methode verwenden in der GCC 4.8 Handbuch: https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gfortran/RANDOM_005fSEED.html#RANDOM_005fSEED
Es ist sehr beliebt und bemerken, dass es keine 37 in ihrem Ausdruck gibt, verwenden sie eine erweiterte Methode, um einen Samen mit genug Entropie zu bekommen.
Und schließlich, Warum ist das Seed ein Array? Weil der Standard das sagt.
Und warum ist der Standard so konzipiert? (wahrscheinlich) Weil es in einem Array mehr Entropie gibt als in einer einzigen Zahl. Sie haben einfach mehr Kombinationen möglich.
Es ist ein Array, weil der Fortran-Standard sagt, es ist ein Array (das könnte der Größe 1 sein). Fragen Sie darüber hinaus, warum ein PRNG davon profitieren könnte, einen Staat zu haben, der durch mehr als eine Nummer beschrieben wird? – francescalus
Ja. Insbesondere beschreibt der PRNG [hier] (https://gcc.gnu.org/onlinedocs/gfortran/RANDOM_005fNUMBER.html). – physkets