生成一首包含 160 位可恢复信息的伪诗 [关闭]
Posted
技术标签:
【中文标题】生成一首包含 160 位可恢复信息的伪诗 [关闭]【英文标题】:Generate a pseudo-poem that would contain 160 bits of recoverable information [closed] 【发布时间】:2011-06-09 13:20:31 【问题描述】:我有 160 位随机数据。
只是为了好玩,我想生成一首英文伪诗来“存储”这些信息。我希望能够从诗中恢复这些信息。 (这里的“诗”对于任何类型的诗歌都是一个模糊的术语。)
注意:这不是一个安全问题,我不在乎其他人是否能够恢复信息,甚至检测到它是否存在。
一首好诗的标准:
更好的美学 更好的韵脚 独特性 长度更短我会说可接受的诗歌不超过三节,每节四行。 (但其他既定形式的诗歌,如十四行诗也很好。)
我喜欢这个主意,但恐怕我完全不知道如何写英文计算机生成的诗歌。 (我年轻时为俄语编写了该程序,但看起来这种经验对我没有帮助。)
那么,有什么线索吗?
注意:我已经asked a similar question。我想尝试这两种方法。请注意好诗的标准与平行问题中的好短语有何不同。请记住,这是“只是为了好玩”。
另外,我必须注意这一点:有一个RFC 1605 在一些相关的事情上。但它不建议任何实现细节,所以它对我来说不是很有用,对不起。
【问题讨论】:
这是我在 SO 上遇到的最奇怪的问题之一,我的意思是,这是一个很好的方式。我忍不住,但我期待看到人们想出什么。 +1 【参考方案1】:我天真的解决方案/算法:
-
写一首优美的 160 字诗
拿出一个词库,为你的诗中的每个词找到一个对应的词。
您原诗中每个单词的值是
0
,您在词库中找到的单词的值是1
现在,将 160 位编码到诗歌中
完成。
【讨论】:
嗯...有趣的方法!但这并不是那么简单。其结果为诗,应保持韵足不变。另外我想在诗歌之间有更多的对比,所以第一眼就可以看出它们是不同的......【参考方案2】:首先,您需要实现一个程序,该程序根据您的语言的马尔可夫模型生成一首有效且可接受的诗歌。
然后,您可以这样修改它: 让我们保持原样。从第二个词开始,根据马尔科夫模型,有很多可能的变体,从最高概率到最低概率排序。通常你选择第一个或类似 random(10) 的单词并显示它。现在你从你的信息中提取 2-8 位,并使用这个词。
在接收方,您将拥有相同的模型,并且您会看到您在每一步中从所有可能性中选择了哪个单词,并且能够恢复您的消息位。
【讨论】:
对,马尔可夫模型。实际上,我对相关任务使用了类似的方法:***.com/q/4683551/6236,但不适用于诗歌。有什么线索可以从哪里获得足够的诗歌来构建频率表? 但是,根据经验,我认为这会导致诗歌太长(或者质量太低——如果历史窗口太短的话)。树枝太少,吃不完的速度不够快。 没有吃更多的好方法。您不仅可以基于现有文本,还可以使用所有可接受的组合来增强您的马尔可夫模型——但这将是一项艰巨的任务。对于诗歌,我想应该对模型返回的可接受单词进行一些过滤。以上是关于生成一首包含 160 位可恢复信息的伪诗 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Emscripten Clang 生成 ELF 64 位可执行文件和 wasm 二进制交叉编译器目标
有任何工具可用于将 32 位/64 位可执行文件打包在一起吗? [关闭]
0914作业-----改进后的验证码生成器---生成4-8位可重复验证码