ÆlÐĿĊḊi1
Hãy thử trực tuyến! hoặc xác minh tất cả các trường hợp thử nghiệm .
Lý lịch
Chúng tôi bắt đầu bằng cách liên tiếp lấy logarit tự nhiên của đầu vào và kết quả tiếp theo cho đến khi kết quả không còn thay đổi. Điều này hoạt động vì phần mở rộng của logarit tự nhiên đến mặt phẳng phức có một điểm cố định ; if z = e -W (-1) ≈ 0.318 + 1.337i - trong đó W biểu thị hàm Lambert W - chúng ta có log (z) = z .
Đối với đầu vào n , sau khi tính toán [n, log (n), log (log (n)), lỗi, z] , trước tiên chúng ta áp dụng hàm trần cho từng kết quả. Thay vào đó , việc triển khai Jelly ( Ċ
) thực sự tính phần ảo của số phức thay vì † , nhưng dù sao chúng tôi cũng không quan tâm đến những điều này.
Khi ứng dụng nhật ký thứ k mang lại giá trị nhỏ hơn hoặc bằng 1 , sẽ trả về 1 lần đầu tiên. Chỉ số dựa trên 0 của 1 đầu tiên đó là kết quả mong muốn.Ċ
Việc thực hiện đơn giản (tính toán chỉ số dựa trên 1, giảm) không thành công do trường hợp cạnh 0 , không có số 1 trong danh sách logarit của nó. Trong thực tế, đối với đầu vào 0 , chuỗi logarit là
[0, None]
Điều này là do logarit của Jelly ( Æl
) bị quá tải; đầu tiên nó thử math.log
(logarit thực), sau đó cmath.log
(logarit phức tạp), và cuối cùng "từ bỏ" và trả về None
. May mắn thay, Ċ
bị quá tải tương tự và chỉ đơn giản trả về đối số nếu nó không thể làm tròn hoặc lấy một phần tưởng tượng.
Tương tự, đầu vào 1 trả về
[1, 0, None]
mà có thể tạo ra vấn đề trong các phương pháp khác có hoặc không liên quan Ċ
.
Một cách để khắc phục vấn đề này được áp dụng Ḋ
(dequeue; loại bỏ phần tử đầu tiên) cho mảng logarit. Bản đồ này
0ÆlÐĿ -> [0, None] -> [None]
1ÆlÐĿ -> [1, 0, None] -> [0, None]
vì vậy không có danh sách nào có 1 bây giờ. Bằng cách này, việc tìm chỉ mục của 1 đầu tiên sẽ trả về 0 (không tìm thấy), đây là đầu ra mong muốn cho các đầu vào 0 và 1 .
Làm thế nào nó hoạt động
ÆlÐĿĊḊi1 Main link. Argument: n (non-negative integer)
ÐĿ Apply the following link until the results are no longer unique.
Æl Natural logarithm.
Return the array of all unique results.
Ċ Round all resulting real numbers up to the nearest integer. This takes
the imaginary part of complex numbers and does nothing for non-numbers.
Ḋ Dequeue; remove the first item (n) of the array of results.
i1 Find the first index of 1 (0 if not found).
† Đây là một trong những chỉ có ba nguyên tử trong Jelly được quá tải một cách không rõ ràng.