河内塔(河内塔)

编程入门 行业动态 更新时间:2024-10-17 18:19:47
本文介绍了河内塔(河内塔)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试做河内塔问题,这是我到目前为止已经尝试过的问题:

I'm trying to do the Towers of Hanoi problem, what I have tried so far:

move(1,[H|T],B,C,A1,B1,C) :- A1 = T, B1 = [H|B]. move(N,A,B,C,A1,B1,C) :- N>1, M is N-1, move(M,[H|T],C,B,A1,B1,C), move(1,[H|T],B,_,A1,B1,C), move(M,C,B,[H|T],A1,B1,C).

但是此代码不起作用,我需要得到的结果如下所示:

but this code does not work, I need get the result is looks like this:

?-move(3,[1,2,3],[],[],A1,B1,C). and the results: A1=[]. B1=[1,2,3] C=[].

有人可以帮助我修正我的代码并获得类似的结果吗?这对我来说很重要,我真的需要帮助. 这是我所做的,但是有一些问题:

can someone help me fix my code up and can get the result like that? This is very important for me, I really need help. this is what i did but with some problems:

move(N,[H|T],[],[],A1,B1,C) :- N > 1, M is N - 1, move(N,[H|M],[H|_],[],A1,B1,C), move(M,[_|M],[H|_],[H|_],A1,B1,C), move(M,[_|M],[],[H|T],A1,B1,C), move(M,[],[_|T],[H|T],A1,B1,C), move(M,[H|_],[_|T],[H|T],A1,B1,C), move(M,[H|_],[_|T],[],A1,B1,C), move(M,[],[H|T],[],A1,B1,C). move(N,[H|T],[],[]) :- write(A1), nl, write(B1), nl, write(C).

推荐答案

这是解决河内问题之塔的逐条说明.

This is the instruction by instruction of solving towers of Hanoi problem.

move(1,X,Y,_) :- write('Move top disk from '), write(X), write(' to '), write(Y), nl. move(N,X,Y,Z) :- N>1, M is N-1, move(M,X,Z,Y), move(1,X,Y,_), move(M,Z,Y,X).

以以下方式解决问题:在逐条指令解决方案中,我们不会更改X,Y或Z的内容.但是在您遇到的问题中,最终您将更改它们的内容.

Attack the problem in such a way: In the instruction by instruction solution we don't change the contents of X,Y or Z. But in your problem, you will eventually change the contents of them.

更新: 由于声明这不是作业问题,因此完整的答案如下:

UPDATE: Since it is declared that this is not a homework question, here is the full answer:

towersOfHanoi(N,A,B,C,A4,B4,C4) :- move(N,A,B,C,A4,B4,C4),!. move(1,[H|T],B,C,A1,B1,C1) :- A1 = T, B1 = [H|B], C1 = C. move(N,A,B,C,A4,B4,C4) :- N>1, M is N-1, move(M,A,C,B,A1,C1,B1), move(1,A1,B1,C1,A2,B2,C2), move(M,C2,B2,A2,C4,B4,A4).

更多推荐

河内塔(河内塔)

本文发布于:2023-11-29 16:14:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1646916.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:河内

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!