Eigentlich ist der Zufall etwas, was in einer Anwendung eher unerwünscht ist. Trotzdem kann es Aufgabenstellungen geben, wo genau das benötigt wird. Eine Zufallszahl !
Die benötigte Funktion findest Du in der dart:math Library.
Die Random Klasse stellt Dir dabei die benötigten Methoden zur Verfügung.
Die wichtigste ist dabei Random(int? seed). Du könntest Random(...) den Parameter seed übergeben. Dieser würde den Wertegenerator initialisieren.
Was bewirkt nun seed genau ?
Solltest Du diesen integer Parameter verwenden, wirst Du immer die gleichen Zufallszahlen bekommen ! Das kann in gewissen Fällen nützlich sein. Aber Achtung: Das Dart Team erwähnt ausdrücklich, das sich die Implementation des Generators zwischen den Library Versionen verändern kann. So könnte es also sein, das die "Zufallszahlen" mit denen Du planst, mit einer neuen Version von Dart ganz anders ausfallen. Solltest Du wirkliche Zufallswerte benötigen, lässt Du diesen Parameter besser weg.
Codebeispiel:
zuFallGenerator ist ein Random Objekt, welches Du mit Random(...) initialisierst. Das Objekt bietet Dir folgende Methoden:
.nextInt(100) ; Mit dieser Methode erhälst Du einen positiven Integerwert von 0 (inklusive) bis maximal 100 (exklusive).
.nextDouble(): Diese Methode erwartet keinen Parameter und stellt einen Wert zwischen 0 und 1 zur Verfügung.
.nextBool() : Auch ohne Parameter. Retourniert einen Wahrheitswert, true oder false.
Der Code oben generiert bei mir zum Beispiel folgenden Output:
Was aber, wenn ich eine Zufallszahl aus einem bestimmten Bereich möchte ?
Im Code oben löst sich max-min zu 60 auf. Da der max Wert nicht inklusive ist, wird der Generator Werte zwischen 0 und 59 generieren. Zu dieser Zahl wird noch das Minimum, also 40 addiert. Es entsteht also ein Wert zwischen 40 und 99 !
Der Code oben zeigt, das Random(...) selbst, keine Methode besitzt, der man einen Bereich übergeben könnte. Auch für .nextDouble(...) gibt es eine Möglichkeit:
Da .nextDouble(...) einen Wert zwischen 0 (inklusive) und 1 (exklusive) generiert, kommt hier die Multiplikation zum Zug. Der generierte Wert wird mit max-min multipliziert, also mit 7.0. Anschliessend wird 2.0 addiert.
Das war es für diesen Post. Bis bald !
Kommentare
Kommentar veröffentlichen