Chú heo con này đi chợ, chú heo con này đã viết một số mã ...
Đợi đã, chúng ta không nói về thịt xông khói đó , chúng ta đang nói về Ngài Francis Bacon! Cụ thể, mật mã Bacon đã nghĩ ra vào cuối những năm 1500 , như một phương pháp ẩn một tin nhắn trong một tin nhắn khác, một phương pháp của steganography .
Các mật mã hoạt động bằng cách che giấu thông điệp trong việc trình bày văn bản, chứ không phải là nội dung của nó. Đầu tiên, các chữ cái trong tin nhắn của bạn được mã hóa thành nhị phân (từ 0 đến 25) như sau:
Lưu ý: Vui lòng sử dụng mã hóa sau trong mã của bạn và đừng lo lắng về số, dấu cách hoặc các ký hiệu khác trong đầu vào, mặc dù tôi có thể dành một số phần thưởng cho những người bao gồm các ký tự này trong mã hóa. Nếu bạn bao gồm các ký hiệu khác, các chữ cái vẫn phải chiếm khoảng 0-25 trong mã hóa.
Letter Encoding
A AAAAA
B AAAAB
C AAABA
D AAABB
E AABAA
F AABAB
G AABBA
H AABBB
I ABAAA
J ABAAB
K ABABA
L ABABB
M ABBAA
N ABBAB
O ABBBA
P ABBBB
Q BAAAA
R BAAAB
S BAABA
T BAABB
U BABAA
V BABAB
W BABBA
X BABBB
Y BBAAA
Z BBAAB
Đã mã hóa tất cả các chữ cái trong tin nhắn của bạn vào A
s và B
s ở trên, bây giờ bạn phải chọn hai kiểu chữ cho mã của mình. Trong ví dụ này, tôi sẽ sử dụng văn bản bình thường cho kiểu chữ A
và văn bản in đậm cho kiểu chữ B
.
Vì vậy, tin nhắn
HELLOWORLD
được mã hóa thành
AABBB AABAA ABABB ABABB ABBBA BABBA ABBBA BAAAB ABABB AAABB
Và bây giờ chúng tôi che giấu nhị phân này bằng một văn bản vận chuyển .
Con cáo nâu nhanh nhẹn nhảy qua những con chó lười biếng, ríu rít trên những cánh đồng nơi những người chăn cừu canh chừng.
Sẽ không sao nếu tin nhắn của nhà mạng dài hơn tin nhắn được mã hóa thực tế, mặc dù nó không thể ngắn hơn. Bây giờ chúng ta biến văn bản vận chuyển thành đậm theo vị trí B
của các thông điệp được mã hóa,
Th i qu ic k bro w n fo x j u mp s ove r t h e l az y do g s , gam b o l i ng in t he ruộng nơi các mục đồng giữ đồng hồ.
Mà không có Markdown đọc là
Th**e** **qu**ic**k** bro**w**n **fo**x **j**u**mp**s **ove**r **t**h**e** **l**az**y**
**do**g**s**, gam**b**o**l**i**ng** in t**he** fields where the shepherds keeps watch.
Lưu ý rằng tôi đã không sử dụng dấu chấm câu trong tin nhắn của nhà mạng để mã hóa tin nhắn, nhưng liệu dấu câu có được mã hóa hay không là tùy thuộc vào bạn /.
Quy tắc
Đầu vào của bạn sẽ là tin nhắn bạn được mã hóa và tin nhắn vận chuyển. Nếu thông báo vận chuyển quá ngắn, hãy trả về một số loại thông báo lỗi.
Bạn phải chọn hai kiểu chữ để mã hóa
A
vàB
, chẳng hạn như UPPERCASE, chữ thường, in nghiêng , in đậm , in nghiêng đậm ,gạch ngang,in code format
v.v. Bạn phải sử dụng hình thức Markdown của Stack Exchange để mã hóa các kiểu chữ này, tức làUPPERCASE, lowercase, *italic*, **bold**, ***bold italic***, <s>strikethrough</s>, `in code format`
Đầu ra của bạn phải là thông báo nhà cung cấp được mã hóa hiện tại của bạn, được hiển thị với Markdown hoặc được hiển thị mà không có, như trong ví dụ trên.
Bạn chỉ được yêu cầu thực hiện một thuật toán mã hóa. Bất kỳ thuật toán giải mã nào bạn muốn cung cấp đều được chào đón, nhưng tại thời điểm viết bài sẽ không giúp ích hay cản trở điểm số của bạn.
Mã của bạn phải là một chương trình hoặc một chức năng.
Đây là mã golf, vì vậy số byte nhỏ nhất sẽ thắng.
Như mọi khi, nếu vấn đề không rõ ràng, xin vui lòng cho tôi biết. Chúc may mắn và chơi golf tốt!