Love And Program 2021-08-03 10:13 采纳率: 77.8%
浏览 368
已结题

蓝桥杯直线问题,如何解决惰性

在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上,那么这些点中任意两点确定的直线是同一条。

给定平面上 2 × 3 个整点 {(x, y)|0 ≤ x < 2, 0 ≤ y < 3, x ∈ Z, y ∈ Z},即横坐标是 0 到 1 (包含 0 和 1) 之间的整数、纵坐标是 0 到 2 (包含 0 和 2) 之间的整数的点。这些点一共确定了 11 条不同的直线。
我很奇怪的是我是想得到每个点,然后依次用坐标去减去他们,当x1!=x2并且y1!=y2的时候我觉得用一个and语句就可以解决,但事实上并非如此,打印出来的结果很奇怪,我看着是惰性问题,但是这也有很多不一样的地方不解,希望得到lao shi们的帮助。(我想用前两个循环得到的(x1,y1)后一个循环代表(x2,y2),这是前面计算出来的,但是结果却出来的让我kuhuo)

-
l=[]
n=2
m=3
t=0
xx=[]
for x in range(0,n):
    for y in range(0,m):
        l.append([x,y])

for x1 in range(0,n):
    for y1 in range(0,m):
        for x2 in range(0,n):
            if x1!=x2 and y1!=l[x2][1]:
                k=(x1-l[x2][0])/(y1-l[x2][1])
                xx.append([x1,y1,l[x2][0],l[x2][1]])
                xx.append(k)
print(len(xx))

[0, 0, 0, 1], -0.0, [0, 2, 0, 1], 0.0, [1, 1, 0, 0], 1.0, [1, 2, 0, 0], 0.5]

  • 写回答

1条回答 默认 最新

  • 听霄 2021-08-03 11:36
    关注

    img

    你可以参考一下以下代码

    
    
    l=[]
    n=2
    m=3
    t=0
    xx=[]
    for x in range(0,n):
        for y in range(0,m):
            l.append([x,y])
    print(l)      # l就是6个点了,直接在l里循环取点就行
    for i in l:    # i的值对应(x1,y1)
        for j in l:    #j的值对应(x2,y2)
            if i != j and i[1]-j[1] != 0 :     # 这里筛出来的有重复的直线,条件你还需要自己再去加
                k = (i[0]-j[0])/(i[1]-j[1])
                xx.append([i[0],i[1],j[0],j[1]])
                xx.append(k)
    print(len(xx))
    print(xx)
    
    
    

    若有帮助,请点击一下“采纳”,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 已采纳回答 8月5日
  • 创建了问题 8月3日

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?