Fungsi setengah-eksponensial adalah fungsi yang ketika disusun dengan dirinya sendiri memberikan fungsi eksponensial. Misalnya, jika f(f(x)) = 2^x
, maka f
akan menjadi fungsi setengah-eksponensial. Dalam tantangan ini, Anda akan menghitung fungsi setengah-eksponensial tertentu.
Secara khusus, Anda akan menghitung fungsi dari bilangan bulat non-negatif ke bilangan bulat non-negatif dengan properti berikut:
Meningkat secara monoton: jika
x < y
, makaf(x) < f(y)
Setidaknya setengah eksponensial: Untuk semua
x
,f(f(x)) >= 2^x
Leksikografis terkecil: Di antara semua fungsi dengan properti di atas, output yang diminimalkan
f(0)
, yang diberi pilihan yang diminimalkanf(1)
, kemudianf(2)
, dan seterusnya.
Nilai awal dari fungsi ini, untuk input 0, 1, 2, ...
adalah:
[1, 2, 3, 4, 8, 9, 10, 11, 16, 32, 64, 128, 129, 130, 131, 132, 256, 257, ...]
Anda dapat menampilkan fungsi ini melalui salah satu metode berikut, baik sebagai fungsi atau sebagai program lengkap:
Ambil
x
sebagai input, outputf(x)
.Ambil
x
sebagai input, output nilai pertamax
darif
.Keluarkan semua
f
.
Jika Anda ingin mengambil x
dan output f(x)
, x
harus diindeks nol.
Ini adalah kode golf - kode terpendek dalam byte yang menang. Celah standar dilarang, seperti biasa.