Wkład
Każda liczba całkowita a1, a2, a3, b1, b2, b3 w zakresie od 1 do 20.
Wydajność
True if a1^(a2^a3) > b1^(b2^b3) and False otherwise.
^ jest potęgowaniem w tym pytaniu.
Zasady
To jest golf golfowy. Twój kod musi zostać poprawnie zakończony w ciągu 10 sekund dla każdego ważnego wejścia na standardowym komputerze stacjonarnym.
Możesz wypisać dowolną wartość Prawda dla Prawdy i dowolną Falsey dla False.
Możesz przyjąć dowolną kolejność wprowadzania danych, o ile podana jest w odpowiedzi i zawsze taka sama.
W przypadku tego pytania Twój kod powinien zawsze być poprawny. Oznacza to, że nie powinno to zawieść z powodu niedokładności zmiennoprzecinkowych. Ze względu na ograniczony zakres danych wejściowych nie powinno to być zbyt trudne do osiągnięcia.
Przypadki testowe
3^(4^5) > 5^(4^3)
1^(2^3) < 3^(2^1)
3^(6^5) < 5^(20^3)
20^(20^20) > 20^(20^19)
20^(20^20) == 20^(20^20)
2^2^20 > 2^20^2
2^3^12 == 8^3^11
1^20^20 == 1^1^1
1^1^1 == 1^20^20
Odpowiedzi:
Perl 6 ,
3129 bajtów-2 bajty dzięki Grimy
Wypróbuj online!
Wierzcie lub nie, to nie jest esolang, nawet jeśli składa się głównie z gwiazdek. To używa formuły Arnaulda , z log10 zamiast ln.
źródło
2^3^12 == 8^3^11
.R , 39 bajtów
Wypróbuj online!
Zwraca FAŁSZ, gdy
a > b
i PRAWDA, jeślib < a
źródło
f(2,2,20,2,20,2)
2^3^12 == 8^3^11
.1^20^20 == 1^1^1
i na1^1^1 == 1^20^20
.05AB1E ,
119117 bajtówPort @Arnauld 's JavaScript i @digEmAll R' s podchodzi (widziałem je dodawać w tym samym czasie)
-2 bajty dzięki @Emigna
+2 bajtów jak bug-fix po @Arnauld 's i @digEmAll odpowiedzi jest zawarta błąd
-4 bajty teraz, gdy dozwolona jest inna kolejność wprowadzania po komentarzach @LuisMendo
Wejście jak
[a1,b1]
,[a3,b3]
,[a2,b2]
w trzech oddzielonych wejść.Wypróbuj online lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie:
źródło
ć
, ale całkowicie zapomniałem o użyciuš
(nie jestem pewien, dlaczego teraz to widzę, haha). Dzięki!Java (JDK) , 56 bajtów
Wypróbuj online!
Kredyty
źródło
2^3^12 == 8^3^11
.Wolfram Language (Mathematica) , 23 bajty
Wypróbuj online!
źródło
##>0&@@(##^1&@@@#)&
jest tylko 19 bajtów, a nawet bardziej zadziwiająco nie-matematyczne niż powyższy kod. (format infput{{a,b,c},{d,e,f}}
)J ,
119 bajtówWypróbuj online!
Argumenty podane jako listy.
>
czy lewy jest większy?&(...)
ale najpierw przekształć odpowiednio każdy argument:^.@^/
zmniejszaj go od prawej do lewej z eksponencją. Ale ponieważ zwykłe potęgowanie ograniczy błąd nawet dla liczb rozszerzonych, bierzemy logi obu stronźródło
Czysty , 44 bajty
Wypróbuj online!
Wykorzystuje adaptację formuły Arnaulda.
źródło
2^3^12 == 8^3^11
.Python 3 , 68 bajtów
Wypróbuj online!
Port odpowiedzi @Arnualds, ale zmieniono bazę logów.
źródło
^
jest wywoływany**
w Pythonie. Po tej zmianie nie będzie można uruchomić wszystkich przypadków testowych OP.2^3^12 == 8^3^11
.05AB1E , 13 bajtów
Wykorzystuje metodę z odpowiedzi JS Arnaulda
Wypróbuj online!
źródło
b1=b2=b3=20
, tak, to się nie kończy.Excel, 28 bajtów
Implementacja Excel tej samej formuły, która już była używana.
źródło
JavaScript, 51 bajtów
Co zaskakujące, przypadki testowe nie wykazują błędów zmiennoprzecinkowych. Nie wiem, czy kiedykolwiek tak się stanie.To po prostu porównuje logarytm liczb.
Tolerancja równości jest równa
1e-8
.źródło
2^3^12 == 8^3^11
przypadku testowym. W rzeczywistości twoja odpowiedź jest bardzo podobna do oryginalnej odpowiedzi Arnaulda (niestety raczej skreślona niż naprawiona), która zainspirowała większość tych, którzy jej nie zdołali.l(h)
w prawo, a może teraz działa? Edycja: Czekaj, nie robi.0.01
.(5.820766091346741e-11,(8.0,3.0,11,2.0,3.0,12))
(mój przypadek testowy), a najniższą, którą musisz uwzględnić, jest(9.486076692724055e-4,(17.0,19.0,1,3.0,7.0,2))
(3^7^2 > 17^19^1
.) Więc coś takiego1e-8
powinno być bezpiecznie w środku i tej samej długości bajtów.bc -l, 47 bajtów
z wejściem odczytanym z
STDIN
, jedna liczba całkowita na linię.bc
jest dość szybki; obsługuje a = b = c = d = e = f = 1 000 000 w nieco ponad sekundę na moim laptopie.źródło
C ++ (gcc) , 86 bajtów
Dzięki @ ØrjanJohansen za wskazanie błędu w tym i @Ourous za naprawienie.
Wypróbuj online!
źródło
log
dwa razy powinna byći[2]*log(i[1])+log(log(*i))
. Np. Obecny nie powiedzie się2^2^20 > 4^2^18
.pow
metody.2^3^12 == 8^3^11
problem, który wskazałem innym.2^3^20 == 8^3^19
. W rzeczywistości metoda mocy zawiedzie średnio mniej, prawdopodobnie dlatego, że ma tendencję do mnożenia przez potęgę dwóch. Inni zdołali sprawić, by działał, po prostu lekko go poprawiając.Galaretka , 8 bajtów
Wypróbuj online!
Na podstawie odpowiedzi JS Arnaulda . Oczekuje jako danych wejściowych
[a1, b1]
jako argument lewy i[[a2, b2], [a3, b3]]
argument prawy.Teraz zmieniono na używanie logu do bazy 10, która, o ile poprawnie obsługuje wszystkie możliwe dane wejściowe w określonym zakresie. Dzięki Ørjan Johansen za znalezienie oryginalnego problemu!
źródło
2^3^12 == 8^3^11
.8*
zamiast8**
. @ ØrjanJohansen jest rzeczywiście poprawny,2**(3**12) > 8**(3**11)
to jest falsey, ponieważ są one równe.TI-BASIC,
2731 bajtówAns
Przykłady:
Wyjaśnienie:
Uwaga: TI-BASIC jest językiem tokenizowanym. Liczba znaków nie jest równa liczbie bajtów.
źródło
log(x) × y × z
raczej niżlog(x) × y ^ z
. Niekoniecznie doprowadzi to do takiej samej kolejności jak pierwotna nierówność.APL (NARS), znaki 36, bajty 72
Tutaj poniżej funkcja z w (abc) z (xyt) zwróci 1, jeśli a ^ (b ^ c)> x ^ (y ^ t) w przeciwnym razie zwróci 0; test
{(abc) ← ⍵⋄a = 1: ¯1⋄ (⍟⍟a) + c × ⍟b} to funkcja p (a, b, c) = log (log (a)) + c * log (b ) = log (log (a ^ b ^ c)), a jeśli aa = a ^ (b ^ c) z a, b, c> 0 oraz a> 1 bb = x ^ (y ^ t) z x, y, t> 0 i x> 1 niż
Wystąpił problem z funkcją p: Gdy a ma wartość 1, dziennik log 1 nie istnieje, więc wybieram reprezentowanie go liczbą -1; gdy a = 2, więc dziennik a jest liczbą ujemną, ale> -1.
PS. Widział funkcję w swoim większym zestawie, w którym jest zdefiniowana
pojawia się zakres dla a, b, cw 1..20 jest za mało ... Jeśli ktoś widzi, kiedy przepełnia się logarytmiczną podstawą 10, zakres dla a, b, c może wynosić 1..10000000 lub większy dla 64 bitów typ pływaka.
źródło