Hàm nửa hàm mũ là hàm mà khi được cấu tạo với chính nó sẽ cho hàm số mũ. Ví dụ, nếu f(f(x)) = 2^x, sau đó fsẽ là một hàm số mũ. Trong thử thách này, bạn sẽ tính một hàm số mũ cụ thể.
Cụ thể, bạn sẽ tính hàm từ các số nguyên không âm sang các số nguyên không âm với các thuộc tính sau:
Tăng đơn điệu: nếu
x < y, thìf(x) < f(y)Ít nhất là một nửa số mũ: Đối với tất cả
x,f(f(x)) >= 2^xNhỏ nhất về mặt số học: Trong số tất cả các chức năng có các thuộc tính trên, hãy xuất ra hàm tối thiểu hóa
f(0), cho phép lựa chọn đó giảm thiểuf(1), sau đóf(2), v.v.
Các giá trị ban đầu của hàm này, cho các đầu vào 0, 1, 2, ...là:
[1, 2, 3, 4, 8, 9, 10, 11, 16, 32, 64, 128, 129, 130, 131, 132, 256, 257, ...]
Bạn có thể xuất hàm này thông qua bất kỳ phương thức nào sau đây, dưới dạng hàm hoặc là một chương trình đầy đủ:
Lấy
xlàm đầu vào, đầu raf(x).Lấy
xlàm đầu vào, đầu ra cácxgiá trị đầu tiên củaf.Đầu ra vô hạn tất cả
f.
Nếu bạn muốn lấy xvà đầu ra f(x), xphải được lập chỉ mục bằng không.
Đây là mã golf - mã ngắn nhất tính bằng byte thắng. Lỗ hổng tiêu chuẩn bị cấm, như mọi khi.