Fungsi setengah-eksponensial adalah fungsi yang ketika disusun dengan dirinya sendiri memberikan fungsi eksponensial. Misalnya, jika f(f(x)) = 2^x, maka fakan 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^xLeksikografis 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
xsebagai input, outputf(x).Ambil
xsebagai input, output nilai pertamaxdarif.Keluarkan semua
f.
Jika Anda ingin mengambil xdan output f(x), xharus diindeks nol.
Ini adalah kode golf - kode terpendek dalam byte yang menang. Celah standar dilarang, seperti biasa.