Có 40 cách mà một đường dẫn Hamilton được định hướng có thể được sắp xếp trên lưới 3 × 3:
Đồ họa này ( cảm ơn Sp3000! ) Chỉ hiển thị 20 đường dẫn không mong muốn. Di chuyển từng đường màu theo cả hai hướng cho 40 đường dẫn.
Thử thách
Chỉ sử dụng ASCII có thể in , viết một lưới các ký tự 3 × 3, chẳng hạn như:
ABC
DEF
GHI
Khi mỗi trong số 40 đường dẫn được đọc từ lưới này là 40 chương trình một dòng, 9 ký tự, mục tiêu là để mỗi chương trình xuất ra một số nguyên duy nhất từ 1 đến 40. Làm điều này cho tất cả 40 đường dẫn có vẻ khó khăn và khó xảy ra, vì vậy bạn chỉ cần làm cho nó hoạt động cho càng nhiều đường càng tốt.
Bài nộp có 40 chương trình đường dẫn xuất ra các số khác biệt nhất từ 1 đến 40 sẽ là người chiến thắng. Tiebreaker đi đến trình trước đó.
Các chương trình đường dẫn có lỗi hoặc không xuất ra một số nguyên từ 1 đến 40 hoặc xuất ra một số nguyên mà một chương trình đường dẫn khác đã được bảo hiểm không được tính. Đặc biệt:
- Các chương trình bị lỗi trong khi biên dịch, chạy hoặc thoát không được tính. Cảnh báo là ok.
- Các chương trình không xuất ra số nguyên từ 1 đến 40 hoặc xuất ra thứ gì đó không đúng định dạng, chẳng hạn như
-35
hoặc35 36
không được tính. - Các chương trình yêu cầu đầu vào của người dùng để tạo đầu ra không được tính.
- Các chương trình không bao giờ kết thúc không được tính.
- Từ giờ trở đi , các chương trình không mang tính quyết định sẽ không được tính.
- Mặt khác, các chương trình hợp lệ xuất ra một số nguyên từ 1 đến 40 mà một chương trình hợp lệ khác đã xuất không được tính. (Chương trình đầu tiên được tính.)
- Chỉ các chương trình xuất đại diện số nguyên của các số từ 1 đến 40 (đã bao gồm) được tính vào tổng số của bạn. Các con số này được dự kiến sẽ được trong thông thường
1
,2
, ...,39
,40
định dạng, trừ khi đó không phải là bình thường đối với ngôn ngữ của bạn. (Một dòng mới ở đầu ra là tốt.) - Số lượng chương trình của bạn đầu ra và thứ tự chúng là gì không quan trọng. Chỉ có số lượng số nguyên khác nhau từ các chương trình hợp lệ mới quan trọng.
Tất cả các chương trình đường dẫn phải được chạy trong cùng một ngôn ngữ. Tuy nhiên, trên thực tế, "chương trình" có thể là các hàm (không có đối số bắt buộc) hoặc lệnh REPL , cũng như các chương trình đầy đủ, in hoặc trả về số nguyên đích của chúng. Bạn có thể trộn và kết hợp giữa các chức năng, lệnh REPL và các chương trình đầy đủ.
9 ký tự ASCII có thể in của bạn không cần phải khác biệt.
Thí dụ
Nếu lưới 3 × 3 của bạn là
ABC
DEF
GHI
và 40 chương trình và đầu ra của bạn trông như thế này
ABCFEDGHI -> 26
ABCFIHEDG -> 90
ABCFIHGDE -> 2
ABEDGHIFC -> syntax error
ADEBCFIHG -> prints 40 but then errors
ADGHEBCFI -> 6
ADGHIFCBE -> 6
ADGHIFEBC -> 6
CBADEFIHG -> runtime error
CBADGHEFI -> 3
CBADGHIFE -> 4
CFEBADGHI -> -32
CFIHEBADG -> 38.0
CFIHGDABE -> "36"
EDABCFIHG -> 33
EFCBADGHI -> no output
EHGDABCFI -> compilation error
EHIFCBADG -> 8
GDABCFEHI -> 22
GHEDABCFI -> 41
IHGDEFCBA -> 0
GDEHIFCBA -> '9'
EDGHIFCBA -> +10
CFIHGDEBA -> 11
GHIFCBEDA -> error
IFCBEHGDA -> error
EBCFIHGDA -> prints 23 but then loops infinitely
CBEFIHGDA -> randomly prints either 24 or 44
GHIFEDABC -> error
IFEHGDABC -> 30
EFIHGDABC -> 39
IHGDABEFC -> 7
GDABEHIFC -> 29
EBADGHIFC -> -1
GHIFCBADE -> 26
IHGDABCFE -> 1
IFCBADGHE -> error
GDABCFIHE -> no output
IHEFCBADG -> no output
IFCBADEHG -> "quack"
điểm của bạn sẽ là 14, vì có 14 số nguyên khác nhau từ 1 đến 40 đầu ra hợp lệ, cụ thể là 26 2 6 3 4 33 8 22 11 30 39 7 29 1
.
123654789