四重循环把每两个点的斜率和截距都表示出来,if x1==x2是为了除去不存在斜率的情况并增加在集合里,最后再加上所有的列数即可表示所有的直线数目。
l=set()
for x1 in range(20):
for y1 in range(21):
for x2 in range(20):
for y2 in range(21):
if x1==x2:
continue
k=(y2-y1)/(x2-x1)
b=(y1*x2-y2*x1)/(x2-x1)
l.add((k,b))
print(len(l)+20)