Bieg do dołu
Utwórz program, który generuje tablicę o losowej długości z liczbami losowymi, a następnie zastosuj szereg reguł, które zmieniają tablicę. Po zastosowaniu reguł wydrukuj sumę tablicy, chyba że określono inaczej
Konfiguracja macierzy
Tablica musi mieć losową długość od 5 do 10 włącznie, z losowymi liczbami całkowitymi od 1 do 20 włącznie. Każda długość tablicy powinna mieć jednakowe prawdopodobieństwo wystąpienia, a każda liczba całkowita powinna mieć równe prawdopodobieństwo pobrania na element.
7 zasad
Reguły powinny działać tak, jakby były stosowane kolejno (np. Reguła 1 działa przed regułą 2) i są stosowane tylko raz. W celu potwierdzenia zastosowania reguły tablica musi zostać wydrukowana w konsoli po każdej aplikacji reguły i raz przed zastosowaniem jakichkolwiek reguł.
- Jeśli tablica zawiera 7, odejmij 1 od każdego elementu
- Jeśli reguła 1 zostanie zastosowana, a tablica zawiera teraz 0, dodaj 1 do każdego elementu
- Jeśli tablica zawiera 13, wyklucz 13 i wszystkie kolejne elementy z tablicy
- Jeśli tablica zawiera 2, wyklucz wszystkie nieparzyste liczby
- Jeśli tablica zawiera 20, a trzeci element jest parzysty, zwróć 20 jako sumę, a następnie zakończ. Jeśli występuje 20, a trzeci element jest nieparzysty, zwróć 20 razy długość tablicy jako sumę, a następnie zakończ.
- Jeśli suma jest większa niż 50, usuwaj ostatni element wielokrotnie, aż będzie mniejszy lub równy 50
- Jeśli tablica zawiera 16, wypisz sumę zarówno w systemie dziesiętnym, jak i szesnastkowym.
Przykład
Oto tablica początkowa,
[20, 2, 5, 7, 14, 8]
Regułę 1 można zastosować:
[19, 1, 4, 6, 13, 7]
Następnie stosuje się zasadę 3:
[19, 1, 4, 6]
Żadne inne reguły nie są potrzebne, więc program zwraca 30 jako sumę.
Notatki
- Nie jestem doświadczonym golfistą, chociaż mogę powiedzieć, że mój osobisty rekord znajduje się w Pythonie 3 z 369 bajtami .
- Reguły nie muszą być faktycznie stosowane w kolejności, ale muszą działać tak, jakby miały.
[3 3 3 3 4 3]i [4 4 3 4 4]każda z prawdopodobieństwem 50% jest zgodna z tym, co napisano w „ustawieniach tablicy”. Więc mogę po prostu wysyłać za 19każdym razem? (Oczywiście, tak naprawdę uważam, że należy wyjaśnić definicję „losowego”).
If the array contains a 20, and the third element is even/odd, co jeśli tablica zawiera mniej niż 3 elementy na tym etapie?
