算法描述:假如你能记住7(5~9不等,一般人瞬时记忆容量)个数,现在有n对不同的数,每当你找到一对,就可以将这对数从这堆数中删除。求算法使处理次数最小,并求n=100时最少处理次数

最少处理次数……?当然是100次……只要春哥保佑,每次都翻到一对就好。具体的算法的话,假设只能记住7个数,那么唯一的作法就是记住7个数后每次翻开两个,和前面7个对比,如果有相同的则消,否则继续。
■网友
从这个实际问题的角度看是不能排序的,也不能用哈希之类的东东,那似乎没有什么优化的余地,纯粹拼RP,最朴素的算法应该是先翻开并记住前7个数,有重复则去掉并继续记满7个,然后继续翻……翻到第200个数就一定前7张全部配对了,配对需要翻的平均次数是100,还剩93对,再按前面这样来,第二次配对平均需要翻93次,一直进行下去,总共需要100+93+86+79+...+9+2=765次。这是平均情况,最好情况,自然是前两个每次都配对去掉,那翻100次就足够了。
■网友
问题的起源应该是一个游戏吧,翻到相同的就去掉。表述可能有遗漏吧,呵呵


    推荐阅读