考虑对称性,假设一个局面镜面反转变成另一个局面,则认为两个局面相同,以这个前提来看。即第一步炮二平五炮八平五看做同一个局面的话
红方开局可走的走法有:
帅五进一、仕四进五、相三进五、相三进一、车一进一、车一进二、马二进三、马二进一、炮二进一、炮二进二、炮二进三、炮二进四、炮二进七、炮二平一、炮二平三、炮二平四、炮二平五、炮二平六、炮二平七、炮二退一、兵一进一、兵三进一、兵五进一。共有23种
其中不影响对称性的棋的棋是:帅五进一、兵五进一。共2种,称为局面A
影响对称性但不影响对手行棋的棋是:仕四进五、相三进五、相三进一、车一进一、车一进二、兵一进一、兵三进一。共7种,称为局面B
其余的影响对称性又影响对手行棋的棋:马二进三、马二进一、炮二进一、炮二进二、炮二进三、炮二进四、炮二进七、炮二平一、炮二平三、炮二平四、炮二平五、炮二平六、炮二平七、炮二退一。共14种,称为局面C
局面C中使对手可行棋增加n步的写作C(n)
C(1):炮二平一、炮二平三、炮二平四、炮二平五、炮二平六、炮二平七、炮二退一,共7种
C(-1):马二进三、马二进一、炮二进一,共3种
C(-2):炮二进二,共1种
C(-3):炮二进三、炮二进七,共2种(这里不允许送将,否则炮二进七要归到局面B(*))
C(-4):炮二进四,共1种
局面A,对手也有23种走法
局面B,对手有44种走法(因为对称性消失,对手如炮2平5和炮8平5会导致两种不同局面)
局面C(n),对手有44+n种走法
可得两步总走法=2×23+7×44+7×45+3×43+1×42+2×41+1×40=962(种)
*允许送将+3种=965种
前面回答不考虑对称性,即第一步炮二平五炮八平五看做两个不同的局面的话,就是
2×44+2×(7×44+7×45+3×43+1×42+2×41+1×40)=1920(种)
*允许送将+6种=1926种
先算红方一步,常见走法有:炮二平五、马二进三、相三进五、兵三进一、炮二平四、炮二平六,较偏的有:炮二平一、炮二平三、士四进五、马二进一、炮二平七、兵一进一、兵五进一,(以上都只记走右边的棋子,除了最后的中兵,其它实际还要乘以2)总共就有25种走法,黑方因为红方的走法而有所限制,因此走法会相应减少些,假设对应红方每一种走法被限制了5种,那结果就是25*20=500,因此算法留存的位数至少要9位,甚至10位。
很多种,马和炮