八数码难题有一个3*3的棋盘,其中有0-8 9个数字,0表示空格,其他的数字可以和0交换位置.求由初始状态1 2 34 5 67 8 0到达目标状态步数最少的解.最好用c

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 16:52:07

八数码难题有一个3*3的棋盘,其中有0-8 9个数字,0表示空格,其他的数字可以和0交换位置.求由初始状态1 2 34 5 67 8 0到达目标状态步数最少的解.最好用c
八数码难题
有一个3*3的棋盘,其中有0-8 9个数字,0表示空格,其他的数字可以和0交换位置.求由初始状态
1 2 3
4 5 6
7 8 0
到达目标状态步数最少的解.
最好用c

八数码难题有一个3*3的棋盘,其中有0-8 9个数字,0表示空格,其他的数字可以和0交换位置.求由初始状态1 2 34 5 67 8 0到达目标状态步数最少的解.最好用c
输入方法:
例如:
input(从键盘):
1 2 3 7 4 5 8 0 6
output(向屏幕):
Step:1
1 2 3
4 5 6
7 8 0
Step:2
1 2 3
4 5 0
7 8 6
Step:3
1 2 3
4 0 5
7 8 6
Step:4
1 2 3
0 4 5
7 8 6
Step:5
1 2 3
7 4 5
0 8 6
Step:6
1 2 3
7 4 5
8 0 6
我的程序:
#include
#include
#include
struct bsm
{
int s[9];
int prep,pos;
} ar1[1000],ar2[1000];
int h1,r1,h2,r2,step;
struct bsm p;
int pd(int k)
{
int i,j,b1,b2;
b1=1;
p.s[p.pos+k]=p.s[p.pos]+p.s[p.pos+k];
p.s[p.pos]=p.s[p.pos+k]-p.s[p.pos];
p.s[p.pos+k]=p.s[p.pos+k]-p.s[p.pos];
p.pos=p.pos+k;
for (i=0;i

八数码难题有一个3*3的棋盘,其中有0-8 9个数字,0表示空格,其他的数字可以和0交换位置.求由初始状态1 2 34 5 67 8 0到达目标状态步数最少的解.最好用c 5个数码1和4个数码组成一个二进制9位数(1)其中奇数有多少个?(2)数码0不能排在一起的偶数有多少个?(3)恰好2个0连在一起,其他0不连在一起的有多少个 pascal解八数码难题 有一串数字 9286.从第3个数码起,每一个数码都是它前面2个数码的积的个位数.第100个数字 有一串数字9286------从第3个数码起,每一个数码都是它前面2个数码的积的个位数.问:第一个数码是几?前一个数码之和是多少?第一百个数码是几?前一百个数码之和是多少?打错了 2.有一串数字9213…从第3个数码起每一个数码都是前面2个数码的和的个位数.问:第100个数码是几?前100个数 至少出现一个数码3,并且是3的倍数的五位数,有多少个? 5个数码1和5个数码0组成组成一个二进制10位数,其中奇数有多少个?还要分析过程 用6个数码1和4个数码0组成一个二进制的十位数,其中的奇数有几个, 一个吸在磁性棋盘静止的棋子受到的平衡力有:重力和________.棋盘对棋子的_______和棋盘对棋子的______. 从0-9这10个数码中有回放地取3次,每次取一个.求所取的3个数码能排成三位奇数的概率. 有一个棋盘,是正方形,边长60厘米,边框八块同样大小的长方形拼成,中央的正方形边32厘米求长方形的长, 有一串数字,任何相邻的4个数码之和都是20,从左往右起第102,1043,128个数码分别是1,3,9,求第一个数码. 在所有首位不为0的八位数电话号码中,任取一个电话号码,求:(1)头两位数码都是8的概率(2)头两位数码至少有一个不超过8的概率(3)头两位数码不相同的概率 对于这道题基本事件的总数 电话号码的概率问题在所有首位不为0的八位数的电话号码中,任取一个电话号码,求:(1)头两位数码都是8的概率(2)头两位数码至少有一位不超过8的概率(3)头两位数码不相同的概率 3×4的长方形棋盘,从左上角到右下角有多少种最短走法 求 八年级一次函数难题!有答案的! 怎么样判断一个八数码问题有解还是无解啊?不会连一个知道的人也没有吧.满意的会追加分数.谢谢.