Tetracja, reprezentowana jako
a^^b
, jest powtarzanym potęgowaniem. Na przykład2^^3
to2^2^2
, co jest 16.
Biorąc pod uwagę dwa numery i b , druk .a^^b
Przypadki testowe
1 2 -> 1
2 2 -> 4
5 2 -> 3125
3 3 -> 7625597484987
etc.
Notacja naukowa jest dopuszczalna.
Pamiętaj, to jest kodowanie w golfa , więc wygrywa kod z najmniejszą liczbą bajtów.
3 3 -> 7625597484987
3^3^3
automatycznie oznacza3^(3^(3))
. Zobacz en.wikipedia.org/wiki/Order_of_operations , gdzie napisano: „Ułożone wykładniki są stosowane od góry do dołu, tj. Od prawej do lewej”.Odpowiedzi:
Dyalog APL, 3 bajty
TryAPL.
Wyjaśnienie
źródło
J,
54 bajtówJest to dosłownie definicja tetracji.
Stosowanie
Wyjaśnienie
źródło
2 ^ 2 ^ 2
są oceniane podobnie2 ^ (2 ^ 2)
i tak dalejHaskell, 19 bajtów
Iteruje wykładnik potęgowy, zaczynając
1
od utworzenia listy[1,a,a^a,a^a^a,...]
, a następnie weź tenb
element.Ta sama długość bezpośrednio:
Bez punktów jest dłuższy:
źródło
Mathematica, 16 bajtów
Wyjaśnienie
Wykonaj b kopie a.
Potęgowanie.
źródło
Python, 30 bajtów
Używa definicji rekurencyjnej.
źródło
Python, 33 bajty
To daje w wyniku funkcję nienazwaną, która przyjmuje ciąg reprezentujący liczbę i liczbę. Na przykład:
Jeśli mieszanie takich formatów wejściowych się nie liczy, istnieje również ta 38-bajtowa wersja:
źródło
Galaretka , 4 bajty
Wypróbuj online! lub zweryfikuj wszystkie przypadki testowe .
Jak to działa
źródło
Perl, 19 bajtów
Obejmuje +1 dla
-p
Podaj liczby w osobnych wierszach na STDIN
tetration.pl
źródło
R, 39 bajtów
Funkcja rekurencyjna:
źródło
Element , 11 bajtów
Wypróbuj online!
To jest po prostu „proste” potęgowanie w pętli.
źródło
JavaScript (ES7), 24 bajty
Wersja ES6 ma 33 bajty:
źródło
f=a=>b=>b?a**f(a,b-1):1
dc,
3529 bajtów:Oto mój pierwszy pełny program w
dc
.źródło
Perl, 40 bajtów
Akceptuje dwie liczby całkowite jako dane wejściowe do funkcji i wyświetla wynik
źródło
pop
aby uzyskać$ARGV[1]
, a następnie użyj,"@ARGV"
aby uzyskać$ARGV[0]
. Użyjsay
zamiastprint
(opcja-M5.010
lub-E
jest darmowa). Ale wciążARGV
jest strasznie długi.-p
Program prawie zawsze wygrywaWłaściwie 6 bajtów
Wypróbuj online!
Dane wejściowe są przyjmowane jako
b\na
(\n
jest nowym wierszem)Wyjaśnienie:
źródło
CJam , 9 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
PHP, 51 bajtów
źródło
GameMaker Language,
5250 bajtówźródło
Pyth, 6 bajtów
Wypróbuj online.
Wyjaśnienie
źródło
Minkolang 0,15 ,
1211 bajtówWypróbuj tutaj!
Wyjaśnienie
źródło
Rakieta 51 bajtów
Nie golfowany:
Testowanie:
Wynik:
źródło
Scala, 45 bajtów
Nie golfowany:
Zbuduj sekwencję
a
s zb
elementami i zastosujmath.pow
od prawej do lewej.źródło
TI-Basic, 19 bajtów
źródło
Java 7,
7157 bajtówKod niepoznany i testowy:
Wypróbuj tutaj.
Wynik:
źródło
C, 50 bajtów
Prosto z definicji Tetration .
źródło
05AB1E , 4 bajty
Wypróbuj online!
3 bajty, jeśli można zamienić argumenty:
źródło
a=5, b=2
powinien wyjść3125
. Nie jestem pewien, w jakiej kolejności przyjmujesz dane wejściowe, ale jednak ustawiam 5 i 2, ale otrzymuję zły wynik.Bash, 50 bajtów
(w granicach typu danych całkowitych bash)
Grał w golfa
Wyjaśnienie
Buduj wyrażenie za pomocą printf, np. E 2 5:
następnie użyj wbudowanego rozszerzenia arytmetycznego bash, aby obliczyć wynik
Test
źródło
PowerShell, 68 bajtów
To jest najkrótsze z trzech podejść, które wypróbowałem, ale ogólnie nie tak świetne, jestem w 100% pewien, że istnieje krótsze podejście, ale kilka rzeczy, które próbowałem, skończyło się na nieco większej liczbie bajtów.
Niestety Powershell nie ma wbudowanego
^
ani**
operatora, albo byłaby czystą odpowiedzią 32/33 bajtów, tjiex (,$args[0]*$args[1]-join"^")
źródło
Axiom 70 bajtów
to mniej golfa
źródło
Cud , 21 bajtów
Stosuje podejście rekurencyjne. Stosowanie:
Rozwiązanie premiowe, 22 bajty
Niekonwencjonalne podejście. Stosowanie:
Bardziej czytelny:
Zakładając
a^^b
:Generuje nieskończoną listę tetrated
a
; boa=2
ta lista wyglądałaby mniej więcej tak[2 4 16 65536...]
. Następnie indeksuje,b-1
ponieważ Wonder jest zerowany.źródło
Clojure, 56 bajtów
Może istnieje krótsza droga przez
apply comp
?źródło