学习目标:

利用prolog编程实现列表元素的全排列。

例如:

  • 输入[a,b,c],得到abc;acb;bca;bac;cab;cba.

代码如下;

del(A,[A|B],B).
del(A,[B|C],[B|D]):-del(A,C,D).
insert(A,S,B):-del(A,B,S).
per([],[]).
per([H1|T1],N):-per(T1,A),del(H1,N,A).


最终效果:

在swi-prolog解释器中输入:

per([a,b,c],X),即可得到最终结果,具体递归过程可自行演练

prolog全排列问题相关推荐

  1. 字符串全排列的问题 python和c语言实现

    前言 这是一个的经典的问题 设计一个算法,输出一个字符串字符的全排列. 比如,String = "abc" 输出是"abc","bac",& ...

  2. 求字符串全排列 python实现

    文章目录 算法思想 附上c语言实现 参考 算法思想 输入一个字符串,打印这个字符串中字符的全排列. eg: 输入:abc 输出:abc acb bac bca cab cba 思路:将求字符串的全排列 ...

  3. #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)

    题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...

  4. 获取序列全排列Java,java中全排列的生成算法汇总

    全排列的生成算法就是对于给定的字符集,用有效的方法将所有可能的全排列无重复无遗漏地枚举出来.任何n个字符集的排列都可以与1-n的n个数字的排列一一对应, 因此在此就以n个数字的排列为例说明排列的生成法 ...

  5. 【经典】javascript ES5原生实现考试题答案全排列组合数组结果获取

    //考试题答案全排列组合function getAllArrange(arr, index, group) {index || (index = 0), group || (group = []);v ...

  6. 蓝桥杯 扑克序列(全排列)

    扑克序列 A A 2 2 3 3 4 4, 一共4对扑克牌.请你把它们排成一行. 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌. 请填写出所有符合要求的排列中, ...

  7. Prolog学习:数独和八皇后问题

    上一篇简单介绍了下Prolog的一些基本概念,今天我们来利用这些基本概念解决两个问题:数独和八皇后问题. 数独 数独是一个很经典的游戏: 玩家需要根据n×n盘面上的已知数字,推理出所有剩余空格的数字, ...

  8. prolog_如何通过观看权力的游戏学习Prolog

    prolog by Rachel Wiles 瑞秋·威尔斯(Rachel Wiles) 如何通过观看权力的游戏学习Prolog (How to learn Prolog by watching Gam ...

  9. LeetCode实战:全排列

    题目英文 Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2 ...

最新文章

  1. 03Template Method模式
  2. python txt文件读写(追加、覆盖)
  3. 中医点滴 1 --- 冬季外感喉咙痛 寒性荨麻疹
  4. Virtex中的ILA属性、VIO属性
  5. ES6关于Promise的用法
  6. caffe 人脸关键点检测_全套 | 人脸检测 人脸关键点检测 人脸卡通化
  7. POJ 1821 单调队列+dp
  8. linux5.5 dvd安装教程,linux 5.5 yum的安装方法(ftp)
  9. python可视化添加文本_python Matplotlib基础--如何添加文本和标注
  10. postman调用webservice接口_接口对前后端和测试的意义
  11. Linux设置串口永久权限
  12. JQuery的click、bind、delegate、off、unbind
  13. 海军装备、舰船电子设备|环境可靠性试验|GJB150A\GJB4
  14. 代码行数统计工具(SourceCounter附下载链接)
  15. 数模算法:排队论模型
  16. 求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。...
  17. 输入年份和月份输出该月有多少天python_输入年份和月份,输出该月有多少天,判断这一天是该年的第几天...
  18. 微软五笔拼音输入法 86版 v7.2 bt
  19. 同一局域网、不同局域网共享和连接打印机设置
  20. MongoDB not authorized for query - code 13 错误解决办法

热门文章

  1. 树莓派ssh连接使用公钥免密登录
  2. 基于python + opencv的视频播放调节功能
  3. laravel 5.5 项目部署到万网虚拟机
  4. Realsense d435i驱动安装、配置及校准
  5. cesium three性能比较_基督教/天主教/东正教/犹太教圣经简单比较
  6. [ESP32/ESP8266专题笔记-7]ubuntu下搭建ESP32/ESP8266-使用WLED
  7. 小球下落 DroppingBalls
  8. 23. Fabric2.2 集成 gnark零知识证明-1
  9. 详细解读拉卡拉支付4.0战略
  10. mysql数据库语句插入_MySQL之插入数据(添加数据)-INSERT