Lasst uns sagen, dass ich eine Reihe von jeder feste Länge haben, dh es 3 sein könnte, 5, 7 ... bis 30.neues Objekt holen täglich von Array
Wie kann ich einen Algorithmus so zu erzeugen, dass, wenn ich wählen ein Element aus dem Array, sollte es an zwei aufeinanderfolgenden Tagen nicht jeden Tag denselben Item-Index auswählen.
Hinweis: Ich habe nicht die Möglichkeit zu speichern, was am Vortag ausgewählt wurde.
Zum Beispiel wenn mein Array ist [ "a", "b", "c", "d", "e", "f"]
gültiges Ergebnis wäre ["a", "b", "c", "d", "e", "f", "d", "a", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f"]
Ungültiges Ergebnis würde
["a", "b", "c", "d", "e", "f", "a", "b", "b", "d", "e", "f", "a", "b", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f"]
Notiere die konsekutiven b
in oben
Ein ideales Ergebnis wäre: wo das ganze Array nach dem Ende der Länge perfekt gedreht wird.
["a", "b", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f", "a", "b", "c", "d", "e", "f"]
Wenn Sie es wollen, den ganzen Tag das gleiche Ergebnis erhalten, unabhängig davon, wie oft sie aufgerufen wird, dann würde ich vorschlagen, den Tag des Monats mit als ein Indexer irgendeiner Art. Kochen Sie das herunter, damit es zu Ihrem Array passt, und Sie haben standardmäßig ein tägliches, einzigartiges und inkrementierendes Ergebnis. – Antiga
Haben Sie Zugriff auf die Tagesnummer? Sie könnten einfach die Tag-Zahl modulo als Anzahl der Elemente im Array als Index eines Elements verwenden, das ausgewählt werden soll. Andernfalls könnten Sie das ausgewählte Element mit dem Element mit dem Index '0' austauschen und immer Elemente aus dem Bereich '[1, n - 1] 'auswählen, so dass Sie nie das vorherige Element auswählen, wie es an der Position 0 –
ist möchte eine (Pseudo-) Zufallssequenz und keinen Index folgen. Recht? jeden Tag einen (und denselben) Index ausgewählt. Wie lange sollte diese Sequenz dauern (wie viele Tage/Monate/Jahre)? und müssen Sie in der Lage sein, Werte aus der Vergangenheit auszuwählen? – Thomas