Ngày dài nhất trong năm - đây là thứ để lãng phí thêm thời gian ...
Tổng quat
Lưu ý đây không phải là một cuộc thi phổ biến và không phải là một thử thách đầu ra đồ họa - bạn chỉ được yêu cầu xuất ra một chuỗi gồm 65.536 số không và số không. Đoạn trích Stack ở cuối câu hỏi sẽ hiển thị đây là hình ảnh đen trắng 256 x 256 và tính điểm chính thức của bạn. Sau đó, bạn có thể lưu hình ảnh và tải nó lên câu trả lời của mình cùng với mã của bạn (vì đầu ra chuỗi sẽ không phù hợp với câu trả lời Stack Exchange 30.000 ký tự).
Chấm điểm
Điểm của một hình ảnh là tổng số điểm của các pixel riêng lẻ. Điểm của một pixel riêng lẻ là tổng của các điểm con cho mỗi pixel không chính trực , các khoảng cách nguyên tố có màu đối diện với pixel được ghi. Các subscore cho mỗi pixel như là 1/p
nơi p
là khoảng cách thủ.
Trong bối cảnh của câu hỏi này, các thuật ngữ có các định nghĩa sau:
Không trực giao: Một pixel không trực giao với pixel được ghi nếu nó không nằm trong cùng một hàng và không nằm trong cùng một cột.
Khoảng cách nguyên tố : Một pixel nằm ở khoảng cách chính so với pixel được ghi nếu chúng được phân tách bằng khoảng cách Euclide chính xác là số nguyên tố. Cụ thể, khoảng cách là khoảng cách tối thiểu được đo theo hình xuyến - pixel trên cùng bên trái là khoảng cách
sqrt(2)
từ pixel dưới cùng bên phải (bao gồm cả 4 cạnh).Màu đối diện: Một pixel có màu đối diện với pixel được ghi nếu giá trị của chúng tổng bằng 1. Nghĩa là, đầu tiên là 0 và thứ hai là 1 hoặc thứ nhất là 1 và thứ hai là 0.
Đoạn mã Stack bao gồm mã ví dụ cho biết cách ghi điểm hình ảnh, nhưng không bao gồm bất kỳ tối ưu hóa hoặc cách tiếp cận hiệu quả nào, chỉ cần mã chính xác để việc chấm điểm các hình ảnh cuối cùng có thể được thực hiện một cách nhất quán.
Nếu bất cứ điều gì trong mã không chính xác, xin vui lòng cho tôi biết trong các bình luận hoặc trong trò chuyện .
JavaScript có thể không nhất thiết là ngôn ngữ tốt nhất để trả lời cho thách thức cụ thể này. Lưu ý rằng mã Snippet cố tình không đưa ra manh mối nào về cách tiếp cận nhanh hơn. Nó sẽ chỉ có hiệu quả được giới thiệu đã được chứng minh trong một câu trả lời hiện có.
Hình dung
Các pixel ghi điểm
Để có cảm giác trực quan về việc phân phối các pixel cho điểm, ở đây (màu tím) là các pixel khoảng cách nguyên tố không trực giao cho pixel (128, 128) của hình ảnh 256 x 256:
Một hình ảnh ngẫu nhiên
Đây là hình ảnh được tạo ngẫu nhiên từ câu trả lời Python 3 ví dụ. Nó có số điểm 138.267,64 và cung cấp cho bạn một cái gì đó để đánh bại.
Đầu vào
Mã không yêu cầu đầu vào.
Đầu ra
Mã phải xuất ra một chuỗi gồm 65.536 số 0 và số 0, đại diện cho các pixel của ảnh đen trắng 256 x 256. Các chữ số phải là một chuỗi liên tục, không có dấu phân cách. Bạn có thể thấy việc sao chép và dán dễ dàng hơn nếu bạn xuất ra một tệp, nhưng điều này tùy thuộc vào bạn.
Mã của bạn cũng có thể xuất thông tin khác mà bạn thấy hữu ích, miễn là chuỗi có thể được sao chép và dán vào Stack Snippet. Ví dụ: bạn có thể muốn xuất chuỗi tốt nhất cho tệp và điểm tốt nhất cho STDOUT theo định kỳ, cho phép người dùng chọn thời điểm dừng tìm kiếm.
Đoạn trích
Như ra nhọn bởi Sp3000 , đoạn được dùng 10 phút để tính toán điểm, đó là một chút quá chậm, ngay cả đối với một tài liệu tham khảo thực hiện cố tình không hiệu quả. Tôi đã chỉnh sửa trong cải tiến đề xuất của Sp3000 về việc tính toán trước các điểm ảnh pixel để tính điểm và bây giờ mất vài giây để tính điểm.
Nếu bạn sử dụng đầu ra hoặc mã của câu trả lời khác làm điểm bắt đầu cho mã của riêng bạn, hãy nhớ cung cấp tín dụng và liên kết đến câu trả lời hỗ trợ. Câu trả lời cho câu hỏi này không cần ghi có câu trả lời mẫu hoặc mã trong câu hỏi.