W tym wariancie układanki Cztery czwórki powinieneś użyć do x
x's
(i żadnej innej liczby) oraz zdefiniowanego zestawu operacji, aby osiągnąć każdą liczbę od 0 do 100. Jeśli x = 4
wtedy możesz użyć do czterech, 4s
to pytanie stanie się klasyczną czwórką puzzle (z wyjątkiem tego, że możesz użyć maksymalnie czterech 4 zamiast konieczności używania dokładnie czterech). Zakładamy 1 < x <= 9
.
W tej wersji dozwolone są tylko następujące operatory:
- Dodawanie (
+
), odejmowanie (-
), mnożenie (*
), dzielenie (/
). Zauważ, że to prawdziwy podział, więc5/2 = 2.5
. - Potęgowanie (np. 4 ^ 4), ponieważ nie wymagałoby to żadnych dodatkowych symboli, gdyby były pisane ręcznie.
- Możesz tworzyć nowe liczby całkowite, łącząc
xs
. Np. Możesz zrobić liczby całkowite4, 44, 444, 4444
.
Możesz także użyć nawiasów do grupowania numerów po prostu w celu kontrolowania kolejności oceny operatorów. Nie można na przykład łączyć nawiasów z konkatenacją jak w (4/4)(4/4) = (1)(1) = 11
.
Nie można stosować żadnych innych symboli i obowiązuje standardowa kolejność operacji.
Twój program powinien wygenerować poprawne rozwiązanie dla danych wejściowych, jeśli istnieje x
w zdefiniowanym zakresie oraz n
pomiędzy 0
i 100
włącznie. W przeciwnym razie twój kod musi wypisać coś, co wskaże, że takie rozwiązanie nie istnieje.
Musisz być w stanie uruchomić przesyłanie do ukończenia na swoim komputerze dla wszystkich wartości wejściowych x
i n
dozwolonego zakresu. To jest golf golfowy, więc wygrywa najkrótsze rozwiązanie.
To stare powiązane pytanie wykorzystuje więcej operatorów (i tylko 4), a zatem wszystkie liczby od 0 do 100 są rozwiązywalne, co nie będzie prawdziwe dla tego wyzwania.
Wejście i wyjście
Twój kod przyjmuje dwie liczby całkowite x
i n
jako dane wejściowe i powinien wypisywać rozwiązanie (lub wskazanie, że nie ma rozwiązania) w dowolnym formacie czytelnym dla człowieka, który uważasz za dogodny. Dane wejściowe 4 6
oznaczają na przykład: „Używając maksymalnie czterech 4, uczyń liczbę 6”. Więc jeśli wejście jest 4 6
wyjściem może być (4+4)/4+4
.
Odpowiedzi:
Python 3 , 265 bajtów
Wypróbuj online!
Działa dla wszystkich liczb w odnośniku połączonym przez Engineer Toast.
Podbiega do
x=8
na Tio,x=9
zajmuje kilka minut na moim komputerze.Funkcja
g
zwraca zestaw wszystkich kombinacji z co najwyżejx
liczbąx
.f
następnie zapętla je i zwraca pierwszą, która zwraca liczbęn
.Znalazłem dla każdego możliwą wartość
x
:Wszystkie numery powyżej mogą być generowane z
(a+b)
,(a-b)
,(a+b)
,a*b
,a/b
,(a/b)
, ia^b
.a+b
ia-b
nie podawaj więcej liczb.a^b
jest również używany tylko raz, ponieważ w przeciwnym razie tworzone są ogromne liczby (jest to również weryfikowane w powyższym dokumencie referencyjnym)Alternatywna wersja, która zwiera, gdy tylko znajdzie rozwiązanie (nie tak jak w golfa):
Jest to o wiele szybsze, ponieważ dla
x=7..9
wszystkich liczb można utworzyć.Python 3 ,
338289 bajtówWypróbuj online!
źródło
(4/4**(4-4))
Dla4
), ale okazuje się, że tak nie jest.exit(e)
jest krótszy niżreturn e