Thời gian kết thúc!
Đây là phần thứ 5 của cả bộ Golf ngẫu nhiên trong ngày của tôi và sê-ri Nghệ thuật trong ngày ASCII của Trình tối ưu hóa . (Các) bài đăng của bạn trong thử thách này sẽ được tính vào cả hai bảng thành tích (mà bạn có thể tìm thấy các bài đăng được liên kết). Tất nhiên, bạn có thể coi điều này giống như bất kỳ thử thách golf mã nào khác, và trả lời nó mà không phải lo lắng về bất kỳ loạt nào.
Lỗ 5: Kim cương nghiêng
Một hình lục giác thông thường luôn có thể được lát bằng kim cương như vậy:
Chúng tôi sẽ sử dụng một đại diện nghệ thuật ASCII của những nghiêng này. Đối với một hình lục giác có chiều dài 2 cạnh, có 20 góc như vậy:
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\
/\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\
\/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/
\/_/_/ \/_/_/ \/_/_/ \_\/_/ \/_/_/ \/_/_/ \_\/_/ \_\/_/ \_\/_/ \_\/_/
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/_/_/\ /\_\_\ /_/\_\ /_/_/\ /_/\_\ /_/\_\ /_/_/\ /_/_/\ /_/_/\ /_/_/\
/\_\_\/\ /\/_/_/\ /_/\/_/\ /\_\_\/\ /\_\/_/\ /_/\/_/\ /_/\_\/\ /\_\_\/\ /_/\_\/\ /_/_/\/\
\/\_\_\/ \/_/_/\/ \_\/\_\/ \/_/\_\/ \/_/_/\/ \_\/_/\/ \_\/\_\/ \/_/_/\/ \_\/_/\/ \_\_\/\/
\/_/_/ \_\_\/ \_\/_/ \_\/_/ \_\_\/ \_\_\/ \_\/_/ \_\_\/ \_\_\/ \_\_\/
Cho một chiều dài cạnh N
, bạn nên tạo một lát như vậy cho một hình lục giác có chiều dài cạnh N
ngẫu nhiên. Phân phối chính xác không thành vấn đề, nhưng mỗi ốp lát phải được trả về với xác suất khác không.
Đối với N ≤ 4
, việc gửi của bạn phải tạo ra một lát trong vòng 1 phút ít nhất 80% thời gian và ít nhất 80% số lần nghiêng phải có khả năng được tạo trong vòng 1 phút. Hầu hết các cách tiếp cận sẽ không phải lo lắng về quy tắc này (nó rất khoan dung) - đây chỉ là để loại trừ các thuật toán dựa trên từ chối rất ngây thơ tạo ra các chuỗi tùy ý cho đến khi một biến trở thành một lát gạch.
Bạn có thể muốn biết rằng tổng số độ nghiêng có thể có của N đã cho có thể được tìm thấy trong OEIS A008793 .
Bạn có thể viết một chương trình đầy đủ hoặc một hàm và nhận đầu vào thông qua STDIN (hoặc thay thế gần nhất), đối số dòng lệnh hoặc đối số hàm và tạo đầu ra thông qua STDOUT (hoặc thay thế gần nhất), tham số trả về hàm hoặc tham số hàm (out).
Bạn không được xuất nhiều khoảng trắng hàng đầu hơn mức cần thiết để căn chỉnh hình lục giác (đó là góc bên trái của hình lục giác không có khoảng trắng phía trước nó). Mỗi dòng có thể chứa tối đa N
khoảng trắng (không nhất thiết phải nhất quán, do đó bạn có thể có đầu ra hình chữ nhật, in hộp giới hạn của hình lục giác).
Đây là mã golf, vì vậy bài nộp ngắn nhất (tính bằng byte) sẽ thắng. Và tất nhiên, lần gửi ngắn nhất cho mỗi người dùng cũng sẽ tham gia vào bảng xếp hạng tổng thể của loạt bài.
Bảng xếp hạng
Bài đầu tiên của mỗi loạt tạo ra một bảng thành tích.
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu mọi câu trả lời bằng tiêu đề, sử dụng mẫu Markdown sau:
# Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn cải thiện điểm số của mình, bạn có thể giữ điểm số cũ trong tiêu đề, bằng cách đánh bại chúng thông qua. Ví dụ:
# Ruby, <s>104</s> <s>101</s> 96 bytes
(Ngôn ngữ hiện không được hiển thị, nhưng đoạn mã yêu cầu và phân tích nó và tôi có thể thêm bảng xếp hạng ngôn ngữ trong tương lai.)
For N ≤ 4, your submission must produce a tiling within 1 minute at least 80% of the time.
quá dễ dàng: 80% thời gian giống nhau, ốp lát cơ bản, nếu không tôi tìm thấy một lát khác trong bất cứ lúc nào tôi muốn