- 注册时间
- 2007-12-27
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 40218
- 在线时间
- 小时
|
发表于 2008-9-12 08:58:59
|
显示全部楼层
切换到本问题,我们可以知道,除了状态1*1和1*2以外,所有其他状态能够转移到的状态同上面一个问题完全相同。
我们对于某个状态s,记上一个问题中对应的状态数为g(s),这个问题中对应的状态数为f(s)
所以我们知道,如果对于某个状态s,它经过一次变换能够达到的所有不同状态为$s_1,s_2,...,s_h$
如果有$f(s_1)=g(s_1),f(s_2)=g(s_2),...,f(s_h)=g(s_h)$,那么我们必然可以有$f(s)=g(s)$。
而根据经验可以猜测除了少数状态以外,都会有$f(s)=g(s)$,我们的任务就是找出所有$f(s)!=g(s)$的状态s而且计算出其状态值.
第一步我们可以知道
$f(p*1)=0,f(o*1)=1$这两个状态不同于函数g,
所以所有可以到达p*1和o*1的状态都要重新计算状态数,也就是我们还需要计算状态
2+p*1,2+o*1,3+p*1,3+o*1,4+p*1,4+o*1
首先计算$f(2)=1!=g(2)=2$,所以,所有可以到达状态2的也需要重新计算,包括状态
3,4,2+1,2*2
其次计算$f(2+1)=2!=g(2+1)=3$
然后我们可以得到$f(2+p*1)=2!=g(2+p*1),f(2+o*1)=3!=g(2+o*1)$
所以所有可以到达这些状态的也都需要重新计算,也就是
2*2+p*1,2*2+o*1,3+p*1,3+o*1,4+p*1,4+o*1,5+p*1,5+o*1,3+2+p*1,3+2+o*1,4+2+p*1,4+2+o*1
加上前面列出的还需要添加状态3,4,2*2
都要重新计算
下一步需要计算2*2,2*2+o*1,2*2+p*1就是重复25#过程可以得到它们函数值同g函数值相同,所以不需要近一步考虑。
然后下一个需要计算状态3,3+p*1,3+o*1,3+2+p*1,3+2+o*1,根据27#的结果得到
$f(3)=2!=g(3)=3,f(3+p*1)=3!=g(3+p*1)=2,f(3+o*1)=2!=g(3+o*1)$
$f(3+2+p*1)=0=g(3+2+p*1),f(3+2+o*1)=1=g(3+2+o*1)$
也就是只有f(3),f(3+p*1),f(3+o*1)不同于g,为此我们还需要验证所有可以到达状态3,3+p*1,3+o*1的状态,包含状态
4,5,3+1,3+2,4+p*1,5+p*1,4+o*1,5+o*1,2*3+p*1,2*3+o*1,3+2+p*1,3+2+o*1,5,6,5+o*1,6+o*1,5+p*1,6+p*1
其中最大为3的已经验证和g函数相同,因此余下还有状态
4,4+p*1,4+o*1,4+2+p*1,4+2+o*1,5,5+p*1,5+o*1,6,6+p*1,6+o*1
已经得出所有不同项为
$f(p*1)=0,f(o*1)=1,f(2)=1,f(2+p*1)=2,f(2+o*1)=3,f(3)=2,f(3+p*1)=3,f(3+o*1)=2$,其余最大数不超过3的都同g相同
然后我们计算状态4,可以到达状态3,2,2+1,1+1;对应f状态值分别为2,1,2,1,所以$f(4)=0!=g(4)=1$
为此我们需要重新计算所有可以到达状态4的状态,包含状态6,5,4+1,4+2
其次计算4+1状态,可以到达状态4,3+1,2+1,2+2*1,3*1,所以对应f值为0,3,2,3,0
所以$f(4+1)=1!=g(4+1)=0$,所以我们需要重新计算6+1,5+1,4+2*1,6,7,4+2,4+3几个状态
4+2*1状态可以到达4+1,3+2*1,2+2*1,2+3*1,4*1,f值分别为1,2,3,2,1;所以得到$f(4+2*1)=0!=g(4+2*1)$
4+3*1状态可以到达4+2*1,3+3*1,2+3*1,2+4*1,5*1,f值分别为0,3,2,3,0;所以得到$f(4+3*1)=1!=g(4+3*1)$
同样可以得到4+o*1可以到达4+p*1,3+o*1,2+o*1,2+p*1,o*1,f值分别为1,2,3,2,1;所以得到$f(4+o*1)=0!=g(4+o*1)$
同样可以得到4+p*1可以到达4+o*1,3+p*1,2+p*1,2+o*1,p*1,f值分别为0,3,2,3,0;所以得到$f(4+p*1)=1!=g(4+p*1)$
到达它们的状态有5,6,5+o*1,5+p*1,6+o*1,6+p*1,7,7+o*1,7+p*1,4+2+o*1,4+2+p*1,4+3+p*1,4+3+o*1,2*4+o*1,2*4+p*1
到次我们已经知道同g不同的状态有
$f(p*1)=0,f(o*1)=1,f(2)=1,f(2+p*1)=2,f(2+o*1)=3,f(3)=2,f(3+p*1)=3,f(3+o*1)=2,f(4)=0,f(4+p*1)=1,f(4+o*1)=0$
需要继续计算的状态有
4+2,4+3,4+2+p*1,4+2+o*1,4+3+p*1,4+3+o*1,2*4+o*1,2*4+p*1,5,5+p*1,5+o*1,6,6+p*1,6+o*1,7,7+p*1,7+o*1
我们先查看状态4+2可以到达4,4+1,3+2,2*2,2*2+1,2+2*1,对应f值0,1,1,0,1,3;所以$f(4+2)=2!=g(4+2)$
到达4+2的状态有4+3,2*4,4+2+1,4+2*2,5+2,6+2,7,8
4+2+1可以到达4+2,4+2*1,4+1,3+2+1,2*2+1,2+3*1,2*2+2*1,对应f值2,0,1,0,1,2,0,所以$f(4+2+1)=3!=g(4+2+1)=2$
4+2+2*1可以到达4+2+1,4+3*1,4+2*1,3+2+2*1,2*2+2*1,2+4*1,2*2+3*1,对应f值为3,1,0,1,0,3,1;所以$f(4+2+2*1)=2!=g(4+2+2*1)=3$
同样我们可以得出$f(4+2+p*1)=3!=g(4+2+p*1)=2,f(4+2+o*1)=2!=g(4+2+o*1)=3$
计算4+2*2,可以到达4+2+1,4+2,3+2*2,3*2,3*2+1,2*2+2*1,对应f值3,2,3,2,3,0,所以$f(4+2*2)=1=g(4+2*2)$
类似估计其他4+x*2开头的都应该同g相同了。
其次计算4+3,可以到达4+1,4+2,4+2*1,2*3,3+2,3+2+1,3+2*1,对应f值为1,2,0,0,1,0,2;所以$f(4+3)=3!=g(4+3)$
4+3+1,可以到达4+3,4+2+1,4+2*1,4+3*1,2*3+1,3+2+1,3+2+2*1,3+3*1,对应f值3,3,0,1,1,0,1,3;所以$f(4+3+1)=2!=g(4+3+1)$
类似我们应该可以得到$f(4+3+o*1)=3!=g(4+3+o*1),f(4+3+p*1)=2!=g(4+3+p*1)$
然后查看4+3+2可以到达4+3+1,4+3,4+2*2,4+2+1,4+2+2*1,2*3+2,3+2*2,3+3*1,3+2+2*1对应f值2,3,1,3,2,2,3,3,1;
所以$f(4+3+2)=0=g(4+3+2)$.类似我估计后面的f值都应该同g值会相同了
也就是我们找出了同g值不同的f有
$f(p*1)=0,f(o*1)=1,f(2)=1,f(2+p*1)=2,f(2+o*1)=3,f(3)=2,f(3+p*1)=3,f(3+o*1)=2$
$f(4)=0,f(4+p*1)=1,f(4+o*1)=0,f(4+2)=2,f(4+2+p*1)=3,f(4+2+o*1)=2,f(4+3)=3,f(4+3+p*1)=2,f(4+3+o*1)=3$
对于其余的应该有$f(.)=g(.)$ |
|