【发布时间】:2016-03-28 19:11:26
【问题描述】:
如何更改字符串,使近似字符串匹配的变体无法与原始字符串匹配?
我制作了一个 IRCbot,它根据频道的日志文件运行游戏。它从日志中打印报价,玩家通过猜测“谁说的”来收集积分。该频道相当令人讨厌,其中一名玩家花费不超过 30 分钟的时间构建了一个每次都赢得比赛的机器人。我意识到手动作弊也很容易而且不可能防御,但认为这是自动机器人之间的竞争。我想更新我的机器人,这样任何全自动机器人都无法玩游戏:)
我考虑过从引号中随机删除一个字符,但agrep 仍然能够匹配该字符串。我考虑过用外观相似的替代字符替换一些字符,但这对于逆向工程来说是微不足道的。我正在寻找更难打破的想法。
示例行:
[14:15] <baobot> [QUOTE 13/15] Who famously declared "minulla ainakin paperin tekemisessä 1% ajasta menee algon suunnitteluun ja 99% menee paperin kirjoittamiseen"?
【问题讨论】:
-
只要输出是纯文本,你就不太可能想出一种既能被人类理解又不容易被近似字符串匹配算法破坏的方法。
-
Google 将报价翻译成随机语言并恢复为原始语言。
标签: string algorithm string-matching irc