gpt4 book ai didi

prolog - 在序言中随机播放

转载 作者:行者123 更新时间:2023-12-04 00:39:58 25 4
gpt4 key购买 nike

我正在尝试在 prolog 中编写一个过程,如果 L1 = [1,2,3] 和 L2 = [4,5,6] 那么 L3 = [1,4,2,5,3,6]

所以shuffle([1,2,3],[4,5,6],[1,4,2,5,3,6])
到目前为止我有这个:

shuffle([X],[Y],[X,Y]).
shuffle([X|Xs],[Y|Ys],_) :- shuffle(Xs,Ys,Z), shuffle(X,Y,Z).

这是我第一次尝试编写 prolog 代码,所以我仍在尝试围绕语法、规则和一切进行思考。

我理解逻辑,我只是​​不知道如何实现它,所以任何帮助将不胜感激!

谢谢!

编辑:我已经想通了。如果有人感兴趣,这是解决方案:
shuffle([X],[Y],[X,Y]).  
shuffle([X|Xs],[Y|Ys],[Z1,Z2|Zs]) :- shuffle([X],[Y],[Z1,Z2]),shuffle(Xs,Ys,Zs).

最佳答案

shuffle([], B, B).
shuffle([H|A], B, [H|S]) :- shuffle(B, A, S).

在这类问题中,通常困难的部分不是Prolog,而是找出解决它的最简单的递归关系。

关于prolog - 在序言中随机播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8089849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com