Der Rundown
Erstellen Sie ein Programm, das ein Array mit zufälliger Länge und Zufallszahlen generiert, und wenden Sie dann eine Reihe von Regeln an, die das Array ändern. Nachdem die Regeln angewendet wurden, drucken Sie die Summe des Arrays, sofern nicht anders angegeben
Array-Setup
Das Array muss eine zufällige Länge zwischen 5 und 10 einschließlich haben, mit zufälligen ganzen Zahlen zwischen 1 und 20 einschließlich. Jede Array-Länge sollte die gleiche Wahrscheinlichkeit haben und jede Ganzzahl sollte die gleiche Wahrscheinlichkeit haben, pro Element ausgewählt zu werden.
Die 7 Regeln
Die Regeln sollten so funktionieren, als ob sie nacheinander angewendet würden (z. B. Regel 1 handelt vor Regel 2) und werden nur einmal angewendet. Zum Nachweis der Regelanwendung muss das Array nach jeder Regelanwendung und einmal vor dem Anwenden von Regeln auf die Konsole gedruckt werden.
- Wenn das Array eine 7 enthält, subtrahieren Sie 1 von jedem Element
- Wenn Regel 1 angewendet wird und das Array jetzt eine 0 enthält, fügen Sie jedem Element 1 hinzu
- Wenn das Array eine 13 enthält, schließen Sie die 13 und alle folgenden Elemente aus dem Array aus
- Wenn das Array eine 2 enthält, schließen Sie alle ungeraden Zahlen aus
- Wenn das Array eine 20 enthält und das dritte Element gerade ist, geben Sie 20 als Summe zurück und beenden Sie dann. Wenn eine 20 vorhanden ist und das dritte Element ungerade ist, geben Sie das 20-fache der Länge des Arrays als Summe zurück und beenden Sie dann.
- Wenn die Summe größer als 50 ist, entfernen Sie das letzte Element wiederholt, bis es kleiner oder gleich 50 ist
- Wenn das Array eine 16 enthält, drucken Sie die Summe sowohl dezimal als auch hexadezimal aus.
Beispiel
Hier ist ein erstes Array:
[20, 2, 5, 7, 14, 8]
Regel 1 kann angewendet werden:
[19, 1, 4, 6, 13, 7]
Als nächstes wird Regel 3 angewendet:
[19, 1, 4, 6]
Es sind keine weiteren Regeln erforderlich, daher gibt das Programm 30 als Summe zurück.
Anmerkungen
- Ich bin kein erfahrener Code-Golfer, obwohl ich sagen kann, dass mein persönlicher Datensatz in Python 3 mit 369 Bytes ist .
- Die Regeln müssen nicht in der richtigen Reihenfolge angewendet werden, sondern müssen so tun, als ob sie es getan hätten.
[3 3 3 3 4 3]
und [4 4 3 4 4]
, das jeweils mit einer Wahrscheinlichkeit von 50%, in Übereinstimmung mit dem, was unter „Array - Setup“ geschrieben. Also kann ich 19
jedes Mal einfach ausgeben ? (Natürlich denke ich wirklich, dass die Definition von "zufällig" geklärt werden muss.)
If the array contains a 20, and the third element is even/odd
Was ist, wenn das Array in diesem Schritt weniger als 3 Elemente enthält?