level 2
我自己想的算法 可能很幼稚 现在只想了 前一部分 就是无序数组 再确定顺序大概不难 由于是有序4位数组 所以建立一个a(n)=n n=0~9的数组(纯属个人习惯 大概也可以不用) 从0开始 每隔2个数字取连续4个数字 填入 空格中(发送4个数字到猜数字那个游戏(子程序)中)会产生一组返回值(共5次) 现在只看是否出现 不讨论确定位置的情况 就返回值进行分析(这个模块很复杂 额~~比如 如果连续出现2个返回值位1的话 中间的两个数字必定不是所求数字) 这里分析数字回出现几种 所求数/非求数 两种共同构成已知数 已知数都是通过排除得到的 排除的方法 除了刚才所说的2个连续返回值是1 以外 还可以通过 返回值为3 4 0等等得到 如果返回值为2 则需要进一步分析 这里就需要吧已知值更换位置 返回到上面的 发送数字组 这样 通过返回值不为2的情况 逐渐排除 其他数字 最终使得数字都为已知 至于顺序 最简单(对编程来讲)的方法就是吧一个所求数搭配 3个非求数 发送 这样很容易吧4个所求数的位置确定 当然 这种方法绝对不可能达到游戏要求的那样 仅仅10次以下就能完成游戏 所以还有很打要改动的 或者整个思路就不对 现在智能想想怎么能尽量减少 发送分析次数了
2007年12月27日 17点12分