洛谷 P4035 【球形空间产生器】
这道题虽然看起来很是抽象,但是实际意思还是比较好理解的。
对于一个在n维空间中的点,它相当于是一个有n个参数的点,就像在二维空间中的点有x坐标和y坐标,三位空间中的点有x坐标,y坐标,z坐标,四维有x坐标,y坐标,z坐标,k坐标…………
题目中给了一个在n维的球,以及n + 1个在球面上的点的坐标,求球心的坐标。
想象一下比较容易想出来的二维、三维的球,容易发现球面上的点到球心的距离都相等,当然n维球也同理。
不妨设这个球心的坐标为(x[1], x[2], x[3]......x[n]),给定的n + 1个点的坐标为(q[1][1], q[1][2], q[1][3]......q[1][n]), (q[2][1], q[2][2], q[2][3]......q[2][n]), (q[3][1], q[3][2], q[3][3]......q[3][n])......(q[n + 1][n], q[n + 1][2], q[n + 1][3]......q[n + 1][n])。
根据题目中距离的定义,以及刚刚得出的n维球球面上的点到球心的距离都相等的结论,可得(带根号麻烦,直接都平方了):
(q[1][1] − x[1])2 + (q[1][2] − x[2])2 + (q[1][3] − x[3])2 + ...... + (q[1][n] − x[n])2
| |
(q[2][1] − x[1])2 + (q[2][2] − x[2])2 + (q[2][3] − x[3])2 + ...... + (q[2][n] − x[n])2
| |
(q[3][1] − x[1])2 + (q[3][2] − x[2])2 + (q[3][3] − x[3])2 + ...... + (q[3][n] − x[n])2
| |
............
| |
(q[n + 1][1] − x[1])2 + (q[n + 1][2] − x[2])2 + (q[n + 1][3] − x[3])2 + ...... + (q[n + 1][n] − x[n])2
将平方打开后,观察到等式的每一项都一个(x[1]2 + x[2]2 + x[3]2 + ...... + x[n]2),可以将它消掉,化简得:
q[1][1]2 + q[1][2]2 + q[1][3]2 + ...... + q[1][n]2 − 2 ∗ q[1][1] ∗ x[1] − 2 ∗ q[1][2] ∗ x[2] − 2 ∗ q[1][3] ∗ x[3] − ...... − 2 ∗ q[1][n] ∗ x[n]
| |
q[2][1]2 + q[2][2]2 + q[2][3]2 + ...... + q[2][n]2 − 2 ∗ q[2][1] ∗ x[1] − 2 ∗ q[2][2] ∗ x[2] − 2 ∗ q[2][3] ∗ x[3] − ...... − 2 ∗ q[2][n] ∗ x[n]
| |
q[3][1]2 + q[3][2]2 + q[3][3]2 + ...... + q[3][n]2 − 2 ∗ q[3][1] ∗ x[1] − 2 ∗ q[3][2] ∗ x[2] − 2 ∗ q[3][3] ∗ x[3] − ...... − 2 ∗ q[3][n] ∗ x[n]
| |
............
| |
q[n + 1][1]2 + q[n + 1][2]2 + q[n + 1][3]2 + ...... + q[n + 1][n]2 − 2 ∗ q[n + 1][1] ∗ x[1] − 2 ∗ q[n + 1][2] ∗ x[2] − 2 ∗ q[n + 1][3] ∗ x[3] − ...... − 2 ∗ q[n + 1][n] ∗ x[n]
但这样并不方便去求解,因此可以将它们转化成两两相等的形式,最后化简为:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步