题目:
解题思路:
根据直线的性质:斜率k和截距b来区分不同的直线,同时要跳过垂直直线(斜率不存在),最后循环遍历的结果。
程序代码:
arr=[[x,y] for x in range(20) for y in range(21)]
d=set()
for i in arr:
x1,y1=i[0],i[1]
for j in arr:
x2,y2=j[0],j[1]
if x1==x2:
continue
k=(y2-y1)/(x2-x1)
b=(x2*y1-x1*y2)/(x2-x1)
if (k,b) not in d:
d.add((k,b))
print(len(d)+20)
运行结果: