Il fatiscente
Crea un programma che genera un array di lunghezza casuale con numeri casuali, quindi applica una serie di regole che modificano l'array. Dopo aver applicato le regole, stampare la somma dell'array se non diversamente specificato
Configurazione dell'array
L'array deve avere una lunghezza casuale compresa tra 5 e 10 inclusi, con numeri interi casuali compresi tra 1 e 20 inclusi. Ogni lunghezza dell'array dovrebbe avere la stessa probabilità di accadere e ogni numero intero dovrebbe avere la stessa probabilità di essere scelto per elemento.
Le 7 regole
Le regole dovrebbero agire come se fossero applicate in sequenza (ad es .: la regola 1 agisce prima della regola 2) e dovrebbero essere applicate una sola volta. Per la prova dell'applicazione delle regole, l'array deve essere stampato sulla console dopo ogni applicazione delle regole e una volta prima che vengano applicate le regole.
- Se l'array contiene un 7, sottrarre 1 da ogni elemento
- Se viene applicata la regola 1 e l'array ora contiene uno 0, aggiungere 1 a ciascun elemento
- Se l'array contiene un 13, escludere il 13 e tutti gli elementi che seguono, dall'array
- Se l'array contiene un 2, escludi tutti i numeri dispari
- Se l'array contiene un 20 e il terzo elemento è pari, restituire 20 come somma quindi terminare. Se è presente un 20 e il terzo elemento è dispari, restituire 20 volte la lunghezza dell'array man mano che la somma termina.
- Se la somma è maggiore di 50, rimuovi ripetutamente l'ultimo elemento fino a quando è inferiore o uguale a 50
- Se l'array contiene un 16, stampare la somma sia in decimale che in esadecimale.
Esempio
Ecco un array iniziale,
[20, 2, 5, 7, 14, 8]
È possibile applicare la regola 1:
[19, 1, 4, 6, 13, 7]
La regola 3 è applicata successivamente:
[19, 1, 4, 6]
Non sono necessarie altre regole, quindi il programma restituisce 30 come somma.
Appunti
- Non sono un golfista esperto di codice, anche se posso dire che il mio record personale è in Python 3 con 369 byte .
- Le regole non devono essere effettivamente applicate in ordine, ma devono agire come se lo fossero.
[3 3 3 3 4 3]
e [4 4 3 4 4]
, ciascuno con una probabilità del 50%, è conforme a quanto scritto sotto "array setup". Quindi posso solo uscire 19
ogni volta? (Certo, quello che penso davvero è che la definizione di "casuale" deve essere chiarita.)
If the array contains a 20, and the third element is even/odd
, cosa succede se l'array ha meno di 3 elementi in questo passaggio?