Orz lzz。
挺神奇的东西,网上没有多少资料,我也不是太懂,代码什么的都没写过,那就抄一下百度百科吧
定义
设在平面内给定一点\(O\)和常数\(k\)(\(k\not= 0\)),对于平面内任意一点\(A\),确定\(A'\),使\(A'\)在直线\(OA\)上一点,并且有向线段\(OA\)与\(OA'\)满足\(OA \cdot OA'=k\),我们称这种变换是以\(O\)为的反演中心,以\(k\)为反演幂的反演变换,简称反演。称\(A'\)为\(A\)关于\(O(r)\)的互为反演点。
当\(k>0\)时,有向线段\(OA\)与\(OA'\)同向,\(A\)与\(A'\)在反演极同侧,这种反演变换称为正幂反演,亦叫双曲线式反演变换。
当\(k<0\)时,有向线段\(OA\)与\(OA'\)反向,\(A\)与\(A'\)在反演极异侧,这种反演变换称为负幂反演,亦叫椭圆式反演变换。
性质
信息学中有几条常用的正幂反演的性质
这里的原点指的是反演中心
-
过原点的直线反演后仍为过原点的直线
-
不过原点的直线反演后为过原点的圆
-
过原点的圆反演后为不过原点的直线
-
不过原点的圆反演后为不过反演中心的圆
因此很多关于圆的题目可以转化为直线问题来做
一道题目。
给一个点集,问有多少个三元组,和原点四点共圆
• \(N \leqslant1000\).
对点进行反演,问题就转化为了三点共线问题