PHP函数求四边形面积,求四边形的数量 - Raygo的个人页面 - OSCHINA - 中文开源技术交流社区...

807924d266cb4d4e657e7acbef3974aa.png

首先,什么样的是四边形?

1.四个点

2.第一个点与第二个点相连,第二个点与第三个点相连,第三个点与第四个点相连,第四个点与第一个点相连

3.任意三个点不在一条直线上

4.第二个和第四个点在第一、三两点所成直线的两边

python代码如下:

#-*-coding:utf8;-*-

#qpy:3

#qpy:console

#point define

class Point():

def __init__(self, row, col):

self.Row = row

self.Col = col

#check if two points are linked

def checklinked(p1, p2):

if(p1.Row == p2.Row):

return True

if(p1.Col == p2.Col):

return True

if(p2.Row-p1.Row == p2.Col-p1.Col):

return True

return False

#check if three points are on a line

def checkline(p1, p2, p3):

if((p1.Row == p2.Row) & (p1.Row == p3.Row)):

return True

if((p1.Col == p2.Col) & (p1.Col == p3.Col)):

return True

if((p2.Row-p1.Row == p2.Col-p1.Col) & (p3.Row-p1.Row == p3.Col-p1.Col)):

return True

return False

#check four points can be a 4

def checkcross(p1, p2, p3,p4):

if(p3.Col == p1.Col):

if(((p4.Col-p1.Col)*(p2.Col-p1.Col)) <0):

return True

else:

return False

k=(p3.Row-p1.Row)/(p3.Col-p1.Col)

b=(p3.Col*p1.Row-p1.Col*p3.Row)/(p3.Col-p1.Col)

if((k*p2.Col+b-p2.Row)*(k*p4.Col+b-p4.Row) <0):

return True

else:

return False

#check four points can be a 4

def check4(p1, p2, p3,p4):

if(checklinked(p1, p2)):

if(checklinked(p2, p3)):

if(checklinked(p3, p4)):

if(checklinked(p4, p1)):

if(checkline(p1, p2, p3)):

return False

if(checkline(p1, p2, p4)):

return False

if(checkline(p1, p4, p3)):

return False

if(checkline(p4, p2, p3)):

return False

if(checkcross(p1, p2, p3, p4)):

return True

else:

return False

return False

def calc4(N):

count = 0

NN= N*N

lst = list()

for i in range(0, N):

for j in range(0, N):

p = Point(i, j)

lst.append(p)

for n1 in range(0, NN):

for n2 in range(1, NN):

for n3 in range(1, NN):

for n4 in range(1, NN):

if((n1+n2+n3+n4) >(NN-1)):

continue

p1 = lst[n1]

p2 = lst[n1+n2]

p3 = lst[n1+n2+n3]

p4 = lst[n1+n2+n3+n4]

if(check4(p1,p2,p3,p4)):

count += 1

if(check4(p1,p2,p4,p3)):

count += 1

return count

print(“result:”)

print(calc4(8))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值