问题:下图中共有多少个三角形?
先给各个点表上字母

e(a,b).
e(b,c).
e(c,d).
e(d,e).
e(e,f).
e(f,a).
line([a,g,o,d]).
line([e,i,o,b]).
line([f,o,h,c]).
line([f,g,b]).
line([f,i,d]).
line([b,h,d]).e2(A,B):-e(A,B);e(B,A);e_in_line(A,B).
e_in_line(A,B):-line(L),member(A,L),member(B,L),A\=B.
in_a_line(A,B,C):-line(L),member(A,L),member(B,L),member(C,L).triangle(A,B,C):-e2(A,B),e2(A,C),e2(B,C),\+in_a_line(A,B,C).main:-findall(L,(triangle(A,B,C),sort([A,B,C],L)),R),sort(R,L),write(L),length(L,N),nl,write("The number of triangles: "),write(N).
1 ?- main.
[[a,b,d],[a,b,f],[a,b,g],[a,b,o],[a,d,f],[a,f,g],[a,f,o],[b,c,d],[b,c,f],[b,c,h],[b,c,o],[b,d,e],[b,d,f],[b,d,g],[b,d,i],[b,d,o],[b,e,f],[b,f,h],[b,f,i],[b,f,o],[b,g,o],[b,h,o],[c,d,f],[c,d,h],[c,d,o],[d,e,f],[d,e,i],[d,e,o],[d,f,g],[d,f,h],[d,f,o],[d,h,o],[d,i,o],[e,f,i],[e,f,o],[f,g,o],[f,i,o]]
The number of triangles: 37
true.

prolog寻找三角形个数相关推荐

  1. 3、寻找三角形--百度2017春招

    [编程题] 寻找三角形 时间限制:1秒 空间限制:32768K 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示.  现在要找出三个点,并 ...

  2. HDU3662(求三维凸包表面的多边形个数,表面三角形个数,体积,表面积,凸包重心,凸包中点到面的距离)

    题目:3D Convex Hull   题意:给定空间中的n个点,求这n个点形成的凸包的表面的多边形个数. 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 1> 在 ...

  3. 18 4Sum(寻找四个数之和为指定数的集合Medium)

    题目意思:给一个乱序数组,在里面寻找三个数之和为target的所有情况,这些情况不能重复,增序排列 思路:采用3Sum的做法 ps:有见一种用hash的,存任意两个元素的和,然后变成3sum问题,需要 ...

  4. 给定一个区间寻找三角形_计算给定图片中的三角形数量–程序化解决方案

    给定一个区间寻找三角形 One of my friend sent me below image as puzzle to count the triangles. I started countin ...

  5. 东华大学码蹄集oj赛第一周(三合一,竖直打印机,硬币塔,巨大的错误,三角形个数)

    三合一 模拟即可 #include<bits/stdc++.h> using namespace std;vector<int> v; int main( ) {int n;c ...

  6. 寻找5个数的中位数,只需6次比较的,思路与实现

    问题:寻找5个数的中位数,5个数中可能有相同的数,假设数依次存放在a[0] a[1] a[2] a[3] a[4]中,为了简便记为a0,a1,a2,a3,a4 思路:定义compare_swap(in ...

  7. 求大三角形中三角形个数

    一道笔试编程题要求求一个大三角形中所有小三角形的个数,大约是下面这种情况: 首先想到是的将问题由求边长为n的三角形个数->求边长为n-1的三角形个数->...求边长为1的三角形个数=1,回 ...

  8. 寻找某个数c语言,C++_C语言实现两个递减数列中寻找某一个数,本文实例讲述了C语言实现两个 - phpStudy...

    C语言实现两个递减数列中寻找某一个数 本文实例讲述了C语言实现两个递减数列中寻找某一个数的方法,分享给大家供大家参考之用.具体方法如下: 通常来说这道题算二分查找法中非常有难度的一题了. 题目如下: ...

  9. 寻找三角形(编程题)

    三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示.  现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大. 但是三角形必须满足: ...

  10. [编程题] 寻找三角形

    三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示. 现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大. 但是三角形必须满足:三 ...

最新文章

  1. 加班到凌晨三点,就能月薪五万了吗?
  2. 经典算法题之Maximal Square
  3. Linux系统编程@文件操作(一)
  4. jQuery ajax contentType processData 笔记
  5. java 实体比较_java比较实体类
  6. 松下电视机服务器未响应,松下电视遥控器失灵是什么原因?要怎么办?
  7. 计算机博士专业学位,河海大学计算机应用技术博士专业学位研究生培养方案
  8. robotframework笔记5
  9. Magicodes.IE 2.4发布
  10. classloader隔离练习
  11. 增长黑客手册——01
  12. 每日一言 api 接口
  13. dos批处理脚本自动添加网络IP打印机-简单亲测可用
  14. 2万字 + 50 张图,细说 JVM 内存分布、内存对齐、压缩指针
  15. SpaceShooter打飞机教程笔记(五)
  16. 怎么才能快速减去皮下脂肪?
  17. checkBox 选中 移除
  18. a标签下载文件,js/jq创建a标签导出Excel文件
  19. 英伟达vGPU测试——vmware
  20. 电路实验——实验五 R、L、C元件阻抗特性的测定

热门文章

  1. 商城类小程序的主要功能有哪些?
  2. 【科研绘图】用PPT进行科研用图的图片预处理
  3. 【解决方案】IPv6的445端口被运营商封禁,导致无法正常使用Windows共享文件夹
  4. 解决微信端苹果手机无法跳转页面
  5. word2013 打开一个新文档,之前打开的最小化的文档也会弹出来?
  6. 判断链表是否中心对称(21.6.8)
  7. mysql 主键和候选键_2.2.2 候选键与主键
  8. Pearson相关系数公式的四种形式及Python代码实现
  9. 如何录用有竞业限制协议的员工?
  10. 现在证券公司内部各部门详解