là: 72 46 ký tự
Điều này gần như là một sự phù hợp hoàn hảo ... có một "ngôn ngữ" ngoài kia dường như có nghĩa chính xác cho môn toán golf: ised . Cú pháp bị xáo trộn của nó tạo ra một mã rất ngắn (không có biến được đặt tên, chỉ có các khe nhớ số nguyên và rất nhiều toán tử char đơn đa năng). Xác định hàm gamma bằng tích phân, tôi nhận được tới 80 ký tự dường như ngẫu nhiên
@4{:.1*@+{@3[.,.1,99]^x:*exp-$3}:}@6{:@{$4::@5avg${0,1}>$2}$5:}@0,0@1,99;$6:::.
Ở đây, khe cắm bộ nhớ $ 4 là một chức năng giai thừa, khe cắm bộ nhớ $ 6 chức năng chia đôi và khe cắm bộ nhớ $ 2 dự kiến sẽ được đặt thành đầu vào (được đưa ra trước khi tìm mã nguồn này). Slots $ 0 và $ 1 là ranh giới chia đôi. Ví dụ cuộc gọi (giả sử mã ở trên có trong tệp inversefactorial.ised
)
bash> ised '@2{556}' --f inversefactorial.ised
556
5.86118
Tất nhiên, bạn có thể sử dụng nội dung! Toán tử, trong trường hợp đó bạn nhận được tối đa 45 ký tự
@6{:@{{@5avg${0,1}}!>$2}$5:}@0,0@1,99;$6:::.
Cẩn thận, ưu tiên điều hành đôi khi là lạ.
Chỉnh sửa: ghi nhớ để nội tuyến các chức năng thay vì lưu chúng. Đánh bại Mathicala với 72 ký tự!
@0,0@1,99;{:@{{:.1*@+{@3[.,.1,99]^x:*exp-$3}:}::@5avg${0,1}>$2}$5:}:::.
Và sử dụng! dựng sẵn bạn nhận được 41.
Cập nhật quá hạn một năm:
Tôi chỉ nhận ra điều này là không hiệu quả cao. Được giảm xuống còn 60 ký tự:
@0#@1,99;{:@{.1*@3[.,.1,99]^@5avg${0,1}@:exp-$3>$2}$5:}:::.
Nếu utf-8 được sử dụng (Mathicala cũng vậy), chúng tôi nhận được tới 57:
@0#@1,99;{:@{.1*@3[.,.1,99]^@5avg${0,1}·exp-$3>$2}$5:}∙.
Viết lại một chút khác nhau có thể cắt nó xuống 46 (hoặc 27 nếu sử dụng nội dung!):
{:x_S{.5@3[.,.1,99]^avgx·exp-$3*.1<$2}:}∙∓99_0
Hai ký tự cuối cùng có thể được loại bỏ nếu bạn ổn với câu trả lời được in hai lần.