prolog寻找三角形个数
问题:下图中共有多少个三角形?
先给各个点表上字母
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寻找三角形个数相关推荐
- 3、寻找三角形--百度2017春招
[编程题] 寻找三角形 时间限制:1秒 空间限制:32768K 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示. 现在要找出三个点,并 ...
- HDU3662(求三维凸包表面的多边形个数,表面三角形个数,体积,表面积,凸包重心,凸包中点到面的距离)
题目:3D Convex Hull 题意:给定空间中的n个点,求这n个点形成的凸包的表面的多边形个数. 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 1> 在 ...
- 18 4Sum(寻找四个数之和为指定数的集合Medium)
题目意思:给一个乱序数组,在里面寻找三个数之和为target的所有情况,这些情况不能重复,增序排列 思路:采用3Sum的做法 ps:有见一种用hash的,存任意两个元素的和,然后变成3sum问题,需要 ...
- 给定一个区间寻找三角形_计算给定图片中的三角形数量–程序化解决方案
给定一个区间寻找三角形 One of my friend sent me below image as puzzle to count the triangles. I started countin ...
- 东华大学码蹄集oj赛第一周(三合一,竖直打印机,硬币塔,巨大的错误,三角形个数)
三合一 模拟即可 #include<bits/stdc++.h> using namespace std;vector<int> v; int main( ) {int n;c ...
- 寻找5个数的中位数,只需6次比较的,思路与实现
问题:寻找5个数的中位数,5个数中可能有相同的数,假设数依次存放在a[0] a[1] a[2] a[3] a[4]中,为了简便记为a0,a1,a2,a3,a4 思路:定义compare_swap(in ...
- 求大三角形中三角形个数
一道笔试编程题要求求一个大三角形中所有小三角形的个数,大约是下面这种情况: 首先想到是的将问题由求边长为n的三角形个数->求边长为n-1的三角形个数->...求边长为1的三角形个数=1,回 ...
- 寻找某个数c语言,C++_C语言实现两个递减数列中寻找某一个数,本文实例讲述了C语言实现两个 - phpStudy...
C语言实现两个递减数列中寻找某一个数 本文实例讲述了C语言实现两个递减数列中寻找某一个数的方法,分享给大家供大家参考之用.具体方法如下: 通常来说这道题算二分查找法中非常有难度的一题了. 题目如下: ...
- 寻找三角形(编程题)
三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示. 现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大. 但是三角形必须满足: ...
- [编程题] 寻找三角形
三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示. 现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大. 但是三角形必须满足:三 ...
最新文章
- 加班到凌晨三点,就能月薪五万了吗?
- 经典算法题之Maximal Square
- Linux系统编程@文件操作(一)
- jQuery ajax contentType processData 笔记
- java 实体比较_java比较实体类
- 松下电视机服务器未响应,松下电视遥控器失灵是什么原因?要怎么办?
- 计算机博士专业学位,河海大学计算机应用技术博士专业学位研究生培养方案
- robotframework笔记5
- Magicodes.IE 2.4发布
- classloader隔离练习
- 增长黑客手册——01
- 每日一言 api 接口
- dos批处理脚本自动添加网络IP打印机-简单亲测可用
- 2万字 + 50 张图,细说 JVM 内存分布、内存对齐、压缩指针
- SpaceShooter打飞机教程笔记(五)
- 怎么才能快速减去皮下脂肪?
- checkBox 选中 移除
- a标签下载文件,js/jq创建a标签导出Excel文件
- 英伟达vGPU测试——vmware
- 电路实验——实验五 R、L、C元件阻抗特性的测定