Một câu đố thú vị đã đến với tôi khi nhìn vào các nút thang máy sáng nay.
Bạn được yêu cầu tạo một danh sách tất cả các mẫu chữ nổi phù hợp với lưới 2x3. Sử dụng hàm băm #
để biểu thị một vết sưng và dấu gạch nối -
để biểu thị một vùng phẳng.
Mẫu đầu ra dự kiến:
#-
--
--
##
--
--
#-
#-
--
(and so on...)
Quy tắc:
- Chương trình của bạn phải phân tách từng mẫu bằng ít nhất một ký tự hoặc dòng.
- Các mẫu có thể được tạo ra theo thứ tự bất kỳ.
- Tất cả các mẫu, bất kể bảng chữ cái chữ nổi thực sự sử dụng, nên được sản xuất. Các mẫu hoàn toàn trống là tùy chọn.
- Chỉ nên tạo ra các mẫu vết sưng độc đáo. Các mô hình sau đây được coi là tương đương vì các va chạm trong một sự khác biệt giống hệt nhau. Trong những trường hợp này, sử dụng mẫu gần góc trên cùng bên trái (nghĩa là tùy chọn đầu tiên trong ví dụ này.)
#- -# -- --
#- -# #- -#
-- -- #- -#
Điểm thưởng nếu bạn có thể làm cho nó làm việc cho bất kỳ x bởi y lưới có kích thước. ( EDIT: Trong giới hạn hợp lý. Lên đến 4 x 4 là đủ để chứng minh khái niệm.)
Đọc bài viết wiki, có vẻ như có 45 mẫu (bao gồm cả trống) đáp ứng quy tắc của câu đố này.
x
y
lưới x, bạn tạo các2^(xy)
số đầu tiên và lọc ra các số có mặt nạ bằng 0 so với2^x - 1
hoặc(2^(xy+1) - 1)/(2^y - 1)
.