Tetrasi, direpresentasikan sebagai
a^^b
, adalah eksponensial berulang. Misalnya2^^3
adalah2^2^2
, yaitu 16.
Diberi dua angka a dan b , cetak a^^b
.
Uji kasus
1 2 -> 1
2 2 -> 4
5 2 -> 3125
3 3 -> 7625597484987
etc.
Notasi ilmiah dapat diterima.
Ingat, ini adalah kode-golf , jadi kode dengan jumlah byte terkecil menang.
3 3 -> 7625597484987
3^3^3
secara otomatis berarti3^(3^(3))
. Lihat en.wikipedia.org/wiki/Order_of_operations , di mana dikatakan "eksponen bertumpuk diterapkan dari atas ke bawah, yaitu, dari kanan ke kiri."Jawaban:
Dyalog APL, 3 byte
TryAPL.
Penjelasan
sumber
J,
54 byteIni secara harfiah adalah definisi tetrasi.
Pemakaian
Penjelasan
sumber
2 ^ 2 ^ 2
dievaluasi sebagai2 ^ (2 ^ 2)
dan seterusnyaHaskell, 19 byte
Iterasi secara eksponensial mulai dari
1
untuk menghasilkan daftar[1,a,a^a,a^a^a,...]
, kemudian ambilb
elemen ke-10.Panjang yang sama secara langsung:
Titik bebas lebih lama:
sumber
Mathematica, 16 byte
Penjelasan
Buat b salinan a.
Eksponensial.
sumber
Python, 30 byte
Menggunakan definisi rekursif.
sumber
Python, 33 byte
Ini mengevaluasi ke fungsi yang tidak disebutkan namanya, yang mengambil representasi string dari angka dan angka. Sebagai contoh:
Jika mencampur format input seperti ini tidak masuk hitungan, ada juga versi 38 byte ini:
sumber
Jelly , 4 byte
Cobalah online! atau verifikasi semua kasus uji .
Bagaimana itu bekerja
sumber
Perl, 19 byte
Termasuk +1 untuk
-p
Berikan angka pada baris terpisah di STDIN
tetration.pl
sumber
R, 39 byte
Fungsi rekursif:
sumber
Elemen , 11 byte
Cobalah online!
Ini hanya eksponensial "langsung" dalam satu lingkaran.
sumber
JavaScript (ES7), 24 byte
Versi ES6 adalah 33 byte:
sumber
f=a=>b=>b?a**f(a,b-1):1
dc,
3529 byte:Ini adalah program lengkap pertama saya di Indonesia
dc
.sumber
Perl, 40 byte
Menerima dua bilangan bulat sebagai input ke fungsi dan menampilkan hasilnya
sumber
pop
untuk mendapatkan$ARGV[1]
, lalu gunakan"@ARGV"
untuk mendapatkan$ARGV[0]
. Gunakansay
sebagai gantinyaprint
(opsi-M5.010
atau-E
gratis). Tapi tetap saja,ARGV
ini sangat panjang. Sebuah-p
program hampir selalu menangSebenarnya , 6 byte
Cobalah online!
Input diambil sebagai
b\na
(\n
adalah baris baru)Penjelasan:
sumber
CJam , 9 byte
Cobalah online!
Penjelasan
sumber
PHP, 51 Bytes
sumber
Bahasa GameMaker,
5250 bytesumber
Pyth, 6 byte
Cobalah online.
Penjelasan
sumber
Minkolang 0,15 ,
1211 byteCoba di sini!
Penjelasan
sumber
Racket 51 byte
Tidak Terkumpul:
Pengujian:
Keluaran:
sumber
Scala, 45 byte
Tidak Terkumpul:
Buat urutan
a
s denganb
elemen, dan terapkanmath.pow
dari kanan ke kiri.sumber
TI-Basic, 19 byte
sumber
Java 7,
7157 byteTidak digabungkan & kode uji:
Coba di sini.
Keluaran:
sumber
C, 50 byte
Langsung dari definisi Tetration .
sumber
05AB1E , 4 byte
Cobalah online!
3 byte jika argumen dapat ditukar:
sumber
a=5, b=2
harus keluar3125
. Saya tidak yakin urutan apa yang Anda masukkan, tetapi bagaimanapun saya memasukkan 5 dan 2 saya mendapatkan hasil yang salah.Bash, 50 byte
(dalam batas tipe data bash integer)
Golf
Penjelasan
Bangun ekspresi dengan printf, mis. E 2 5:
lalu gunakan bash built-in ekspansi aritmatika untuk menghitung hasilnya
Uji
sumber
Powershell, 68 Bytes
Ini adalah yang terpendek dari tiga pendekatan yang saya coba, secara keseluruhan tidak terlalu bagus, saya 100% yakin ada pendekatan yang lebih pendek tetapi beberapa hal yang saya coba entah bagaimana berakhir dengan byte yang sedikit lebih banyak.
Sayangnya Powershell tidak memiliki built-in
^
atau**
operator, atau itu akan menjadi jawaban 32/33 byte yang bersih, yaituiex (,$args[0]*$args[1]-join"^")
sumber
Aksioma 70 byte
ini kurang golf
sumber
Bertanya-tanya , 21 byte
Menggunakan pendekatan rekursif. Pemakaian:
Solusi bonus, 22 byte
Pendekatan yang agak tidak konvensional. Pemakaian:
Lebih mudah dibaca:
Dengan asumsi
a^^b
:Menghasilkan daftar tak terbatas yang dititrasi
a
; karenaa=2
, daftar ini akan terlihat seperti[2 4 16 65536...]
. Kemudian indeks padab-1
karena Wonder adalah indeks nol.sumber
Clojure, 56 byte
Mungkin ada cara yang lebih pendek via
apply comp
?sumber