读书人

找4位数组合有关问题

发布时间: 2012-02-29 16:44:10 作者: rapoo

找4位数组合问题
已从1-9中选任意4位数排列,该4位数不存在重复的数字,用程序运算此4位数,每给出一次结果,会有反馈2个信息,第1个是有几个数字在当前结果中并且位置正确,第2个是有几个数字在当前结果中但位置错误。求一算法用尽量少的次数算出正确结果。
请各位帮忙啊,分不够再加

[解决办法]

http://www.ppqq.info/html/data/2006/10/35229.html
[解决办法]
从1-9中选任意4位数排列,该4位数不存在重复的数字
则一共有 P(9,4) = 9 * 8 * 7 * 6 = 3024 种可能
从中任选一个数字, 如: 1234, 然后根据结果, 与可能的数字进行比较, 滤除不符合关系的
则从剩下的可能中任选一数值, 重复以上过程, 直至结果正确为止

如果是完全随机的话, 没有更好的方法次数尽可能少
以前我做过 0-9选4位数字的情况, 最差情况下需要7次猜中结果
平均大概是 5.x 次

读书人网 >软件架构设计

热点推荐