Wie erstelle ich eine Zufallszahl in Swift, ohne die vorherige Zufallszahl zu wiederholen?

8

Ich bin ziemlich neu in Swift und Programmierlogik im Allgemeinen so einfach mit mir

Wie können Sie in Swift eine Zufallszahl zwischen 0 und 9 generieren, ohne die letzte generierte Zahl zu wiederholen? Wie in der gleichen Nummer wird nicht zweimal hintereinander kommen.

    
bmaliel 18.12.2014, 07:19
quelle

5 Antworten

10

Speichern Sie die vorher generierte Nummer in einer Variablen und vergleichen Sie die generierte Nummer mit der vorherigen Nummer. Wenn sie übereinstimmen, generieren Sie eine neue Zufallszahl. Wiederholen Sie die Generierung neuer Zahlen, bis sie nicht übereinstimmen.

%Vor%     
Matthias Bauch 18.12.2014, 07:28
quelle
14

meine Lösung, ich denke, es ist einfach zu verstehen

%Vor%     
hamobi 18.12.2014 07:45
quelle
4

Hier ist ein schöner Trick, um gleich aus den Zahlen zu wählen, die nicht nur vorher gewählt wurden.

Sie haben 10 Zahlen, aber Sie möchten nur aus 9 Zahlen wählen (0 bis 9, aber ohne die vorherige Zahl). Wenn Sie den Bereich um 1 reduzieren, können Sie aus 9 Zufallszahlen auswählen und dann eine wiederholte Zahl durch die vorherige obere Nummer des Bereichs ersetzen. Auf diese Weise müssen Sie jedes Mal nur eine Zufallszahl generieren und erhalten Einheitlichkeit:

%Vor%     
vacawama 18.12.2014 14:23
quelle
2

Dies geschieht am einfachsten mit repeat / while:

%Vor%     
Sam Soffes 26.09.2016 09:05
quelle
0

Setzen Sie alle gewünschten Werte in ein Array, generieren Sie eine Zufallszahl mit arc4random_uniform (SIZEOFARRAY) und ziehen Sie den Index des Zufallswerts aus dem Array, und wiederholen Sie diesen Vorgang, bis das Array leer ist.

    
Alex J 18.12.2014 07:28
quelle

Tags und Links