算法,不存在的,全靠穷举(x) |
本来这个作为失败的项目不想发了 但是 既然是这个话题 我一定要参加! 之前关于四季学院猜词我写了一个工具 它根据可能单词的各字母出现次数来提供建议 比方a出现最多 那就猜它 然后有一天 我想到 这样好像不是最优的猜法 因为只有七次猜错的机会 要做的应该是最小化平均错误次数 比方五个单词中猜 STX SXJ SXX XXT XJX X表示各不相同的字母 重点考察S T J T和J是对称的 假如先猜S 3/5不损失机会 然后三个没有相同字母得一个一个试 没有S的话剩下两个也得一个一个试 平均损失1.2次机会 假如先猜T或J 因为他俩可以对单词有更好的区分性 平均只损失0.8次机会 我就据次写了一个推荐度算法 概括是 在所有可能出现的字母中一个一个迭代 寻找最小的平均损失值和对应的字母 具体来讲是 假如目标字母是S 目标单词长度五位 把单词群根据S的有无和出现位置分开 比方符合.S...的有8个单词 符合 S..S. 的有4个 ... 没有S的有7个 然后S对应损失的次数就是没有S的单词个数(这些猜错了)加上那些被分开的单词群各自最小的损失次数(这些是后续的可能性) 也就是不断递归直到单词群只有一个 因为这时候损失的次数是0 这算法理论上能给出最好的建议 经过测试也是没出错 可是一旦单词规模扩大 就算不出来了(也和单词长度有关 反正几十个肯定炸了) 因为单词群量一大 递归的量就非常非常大 有多大我也不知道 反正大 大的我难受 而且因为递归对应的单词群都不同 不能保存和利用算过的结果 我也不知道怎么优化(我菜) 最后就不了了之了 唉 从兴致满满 到世界灰暗 只怪自己不够强 还是要慢慢积累 |
本帖最后由 myownroc 于 2019-3-11 21:17 编辑 这题在LeetCode上写过,然而不知道怎么找之前的记录┑( ̄Д  ̄)┍ 啊啊啊啊,找到了 数字转字母:
字母转数字:
|
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-16 00:33
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.