余晖~ 2022-02-23 16:39 采纳率: 93.3%
浏览 29
已结题

蓝桥杯上一道 平面切分的,答案解析有一个地方不太懂

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
n = eval(input())
line = [tuple(map(int,input().split(" "))) for i in range(n)]
se = set(line)
line = list(se)  #去重后的线
if line:
    ans=2
    for i in range(1,len(line)):
        a1,b1=line[i]
        pos=set()
        for j in range(i):
            a2,b2=line[j]
            if a1==a2:
                continue
            x=(b1-b2)/(a1-a2)     #从这里开始,它到底是怎么计算的,看不太懂
            y=a1*x+b1
            pos.add((x,y))
        ans += len(pos)+1
print(ans)

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 谛凌 2022-02-23 16:47
    关注

    这个呢 使用了霍夫变换,就是将原始的坐标系进行变换,你可以搜搜看,霍夫变换检测直线
    在这个地方呢,可以理解为,在原始坐标系,a1、b1是变量,而另一个坐标系x和y是变量,原始坐标系的直线在转换坐标系后,会被映射成一个点(使用x和y表示)

    img

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

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 已采纳回答 2月23日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度