Mục tiêu của bạn là viết một chương trình in một số. Con số càng lớn, bạn càng nhận được nhiều điểm. Nhưng hãy cẩn thận! Độ dài mã vừa bị giới hạn vừa có trọng số lớn trong chức năng tính điểm. Số in của bạn sẽ được chia cho khối lập phương của số byte bạn đã sử dụng cho giải pháp của mình .
Vì vậy, giả sử bạn đã in 10000000
và mã của bạn 100
dài byte. Điểm cuối cùng của bạn sẽ là 10000000 / 100^3 = 10
.
Có những quy tắc khác phải tuân theo, để làm cho thử thách này khó hơn một chút.
- Bạn không thể sử dụng các chữ số trong mã của mình (0123456789);
- Bạn có thể sử dụng toán học / vật lý / vv. các hằng số, nhưng chỉ khi chúng nhỏ hơn 10. (ví dụ: Bạn có thể sử dụng Pi ~ = 3.14 nhưng bạn không thể sử dụng hằng số Avogadro = 6e23)
- Đệ quy được cho phép nhưng số được tạo cần phải hữu hạn (vì vậy vô hạn không được chấp nhận như một giải pháp. Chương trình của bạn cần chấm dứt chính xác, giả sử thời gian và bộ nhớ không giới hạn và tạo đầu ra được yêu cầu);
- Bạn không thể sử dụng các hoạt động
*
(nhân),/
(chia),^
(sức mạnh) cũng như bất kỳ cách nào khác để chỉ ra chúng (ví dụ:2 div 2
không được phép); - Chương trình của bạn có thể xuất nhiều hơn một số, nếu bạn cần nó để làm điều đó . Chỉ người cao nhất sẽ được tính cho điểm;
- Tuy nhiên, bạn có thể nối các chuỗi: điều này có nghĩa là bất kỳ chuỗi các chữ số liền kề sẽ được coi là một số duy nhất;
- Mã của bạn sẽ được chạy như vốn có. Điều này có nghĩa là người dùng cuối không thể chỉnh sửa bất kỳ dòng mã nào, anh ta cũng không thể nhập một số hoặc bất cứ thứ gì khác;
- Độ dài mã tối đa là 100 byte.
Bảng xếp hạng
- Steven H. , Pyth ≈ f φ (1,0,0) +7 (256 26 ) / 1000000 [1]
- Nghệ thuật đơn giản đẹp , Ruby f φ 121 () (126) [1]
- Peter Taylor , GolfScript ≈ f ε 0 + + 1 (17) / 1000 [1]
- res , GolfScript ≈ f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (f ε 0 (126))))))))) [1]
- Nghệ thuật đơn giản là đẹp , Ruby ≈ f ω +12 +1 (1983)
- eaglgenes101 , Julia f ω3 (127)
- col6y , Python 3, ≈ (127 → 126 → ... → 2 → 1) / 99 3 [1] [3]
- Toeofdoom , Haskell, ≈ a 20 (1) / 99 3 [1]
- Fraxtil , dc, ≈ 15 ↑ 15/100 3 [3]
- Đỏ tươi , Python, ≈ ack (126.126) / 100 3 10 ↑ 124 129
- Kendall Frey , ECMAScript 6, ≈ 10 3 ↑ 4 3 /100 3 [1]
- Ilmari Karonen , GolfScript, ≈ 10 ↑ 3 10 377 /18 3 [1]
- BlackCap , Haskell, ≈ 10 ↑↑ 65503/100 3
- đệ quy , Python, ≈ 2 ↑↑ 11/95 3 10 ↑↑ 8.63297 [1] [3]
- nm , Haskell, ≈ 2 ↑↑ 7/100 3 10 ↑↑ 4.63297 [1]
- David Yaw , C, ≈ 10 10 4 × 10 22 /83 3 ≈ 10 ↑↑ 4,11821 [2]
- primo , Perl, ≈ 10 (12750684161) 5 × 2 27 /100 3 ≈ 10 ↑↑ 4,11369
- Nghệ thuật , C, ≈ 10 10 2 × 10 6 /98 3 ≈ 10 ↑↑ 3,80587
- Robert Sørlie , x86, ≈ 10 2 2 19 +32 / 100 3 10 3.71585
- Tobia , APL, ≈ 10 10 353 /100 3 ≈ 10 ↑↑ 3,40616
- Đá Darren , C, ≈ 10 10 97.61735 / 98 3 10 ↑↑ 3.29875
- ecksemmess , C, ≈ 10 2 320 /100 3 ≈ 10 ↑↑ 3,29749
- Adam Speight , vb.net, ≈ 10 5000 × (2 64 ) 4 /100 3 ≈ 10 ↑↑ 3,28039
- Giô-suê , bash, ≈ 10 10 15 /86 3 ≈ 10 ↑↑ 3,07282
Chú thích
- Nếu mọi điện tử trong vũ trụ là một qubit và mọi sự chồng chất của chúng có thể được sử dụng một cách hữu ích để lưu trữ thông tin (miễn là bạn không thực sự cần biết những gì được lưu trữ về mặt lý thuyết là có thể), chương trình này đòi hỏi nhiều bộ nhớ hơn có thể có thể tồn tại và do đó không thể chạy được - ngay bây giờ hoặc tại bất kỳ thời điểm nào có thể hiểu được trong tương lai. Nếu tác giả dự định in một giá trị lớn hơn ≈3 ↑↑ 3,28 cùng một lúc, điều kiện này sẽ được áp dụng.
- Chương trình này đòi hỏi nhiều bộ nhớ hơn hiện tại, nhưng không nhiều đến mức về mặt lý thuyết nó không thể được lưu trữ trên một số lượng ít qubit, và do đó một máy tính có thể tồn tại một ngày nào đó có thể chạy chương trình này.
- Tất cả các thông dịch viên hiện đang có lỗi thời gian chạy hoặc chương trình không thực thi như tác giả dự định.
- Chạy chương trình này sẽ gây ra thiệt hại không thể khắc phục cho hệ thống của bạn.
Chỉnh sửa @primo : Tôi đã cập nhật một phần của bảng điểm bằng cách sử dụng một ký hiệu hy vọng dễ dàng hơn để so sánh, với số thập phân để biểu thị khoảng cách logarit với sức mạnh cao hơn tiếp theo. Ví dụ 10 ↑↑ 2,5 = 10 10 √10 . Tôi cũng đã thay đổi một số điểm nếu tôi cho rằng phân tích của người dùng bị lỗi, cứ thoải mái tranh chấp bất kỳ điểm nào trong số này.
Giải thích về ký hiệu này:
Nếu 0 ≤ b < 1
, sau đó .a↑↑b = ab
Nếu b ≥ 1
, sau đó .a↑↑b = aa↑↑(b-1)
Nếu b < 0
, sau đó .a↑↑b = loga(a↑↑(b+1))
12e10
(12 * 10 ^ 10) là 12*10^10
?
500b
, điều này có hợp lệ không? Đó là, chúng ta có thể bỏ qua tất cả những thứ không phải là số mà một chương trình in không? Và nếu vậy, một cái gì đó như 50r7
được tính là 507
?