160ビットの回復可能な情報を含む擬似ポームを生成する[閉じた
-
11-10-2019 - |
質問
160ビットのランダムデータがあります。
楽しみのために、私はこの情報を「保存」するために英語の擬似ポームを生成したいと思います。詩からこの情報を回復できるようにしたいです。 (「詩」は、あらゆる種類の詩の曖昧な用語です。)
ノート: これはセキュリティの質問ではありません。他の誰かが情報を回復するか、それがそこにあるかどうかを検出できるかどうかは気にしません。
より良い詩の基準:
- より良い病気
- より良い韻と足
- 独自性
- 短い長さ
受け入れられる詩は、それぞれ4行の3つのスタンザ以下ではないと思います。 (しかし、他の、ソネットのような確立された形の詩も良いです。)
私はこのアイデアが気に入っていますが、私は英語で生成された詩を行う方法について完全に無知であることを恐れています。 (私は若い頃にロシア語のためにそれをプログラムしましたが、その経験はここで私を助けません。)
だから、手がかりはありますか?
ノート: 私はもう 同様の質問をしました. 。両方のアプローチを試してみたいです。詩の基準がどれほど優れているかに注意してください。並列質問の良いフレーズとは異なります。覚えておいてください、これは「ただの楽しみのため」です。
また、私はこれに注意する必要があります: RFC 1605 やや関連する問題について。しかし、それは実装の詳細を提案していないので、それは私にとってあまり役に立たない、申し訳ありません。u003Cg>
解決
私の素朴なソリューション/アルゴリズム:
- 美しい160ワードの詩を書いてください
- シソーラスを取り出して、詩の各単語と同等の単語を見つけてください。
- 元の詩の各単語は値です
0
そして、あなたがシソーラスで見つけた言葉の価値は1
- 次に、160ビットを詩にエンコードします
終わり。
他のヒント
まず第一に、あなたはあなたの言語のマルコフのモデルに基づいて1つの有効で許容可能な詩を生成するプログラムを実装する必要があります。
次に、このように変更します。最初の単語をそのまま残しましょう。 2番目の単語から始めて、マルコフのモデルに基づいて可能なバリアントが多くあり、最高の確率から最低までソートされています。通常、最初の、またはランダム(10)の単語のようなものを選択して表示します。これで、メッセージの2〜8ビットを取り、この単語を使用します。
レシーバー側には同じモデルがあり、すべての可能性から各ステップで選択した単語が表示され、メッセージの一部を回復できるようになります。