開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
中学数学からはじめる暗号入門 ~現代の暗号はどのようにして作られたのか~ (知りたい!サイエンス 141) (関根 章道(著)、技術評論社))の前編(暗号の歴史あれこれ)、第3章(上杉謙信、誰思う - ポリュビオス式暗号と日本版ポリュビオス式暗号)の暗号を作って解いてみよう(36ページ、Part 4(ポリュビオス式暗号))の解答を求めてみる。
コード
Python 3
#!/usr/bin/env python3 import pprint table = \ [[chr(ord('A') + j) for j in range(5)], ['F', 'G', 'H', 'I/J', 'K']] + \ [[chr(ord('L') + (i * 5) + j) for j in range(5)] for i in range(3)] pprint.pprint(table) encoded = '32114423321144241343' for i, n in enumerate(encoded): if i % 2 == 0: print(table[int(n) - 1][int(encoded[i + 1]) - 1], end='') print()
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
$ ./sample1.py [['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I/J', 'K'], ['L', 'M', 'N', 'O', 'P'], ['Q', 'R', 'S', 'T', 'U'], ['V', 'W', 'X', 'Y', 'Z']] MATHMATI/JCS $
ということで、元の単語はMATHMATICS(数学)。
0 コメント:
コメントを投稿