球型空
間產生器
球型空間
產生器
desc
ript
iond
escr
ipti
on有乙個球形空間產生器能夠在 n
n 維空間中產生乙個堅硬的球體。現在,你被困在了這個 n 維球體中,你只知道球面上 n+1
n+1 個點的座標,你需要以最快的速度確定這個 n
n 維球體的球心座標,以便於摧毀這個球形空間產生器。
n<=10
n<=1
0sol
utio
nsol
utio
n題意: 求 n
n維點 oo(a
1,a2
,...
,ana
1,a
2,.
..,a
n), 使 o
o 距離 球面上 n+1
n+1 個點的距離相等,
使用 式子 表示出來, 即(a
1−b1
,1)2
+(a2
−b1,
2)2+
...+
(an−
b1,n
)2=d
2(a1
−b2,
1)2+
(a2−
b2,2
)2+.
..+(
an−b
2,n)
2=d2
...(
a1−b
n+1,
1)2+
(a2−
bn+1
,2)2
+...
+(an
−bn+
1,n)
2=d2
(a_1-b_)^2+(a_2-b_)^2+...+(a_n-b_)^2=d^2\\
\ \\
(a_1-b_)^2+(a_2-b_)^2+...+(a_n-b_)^2=d^2\\
. \\
. \\
. \\
\ \\
(a_1-b_)^2+(a_2-b_)^2+...+(a_n-b_)^2=d^2
\\\ \\(a
1−b
1,1
)2+(
a2−
b1,2
)2+
...+
(an
−b1,
n)2
=d2(
a1−
b2,1
)2+
(a2
−b2,
2)2
+...
+(an
−b2
,n)
2=d2
...(
a1−
bn+1
,1)
2+(a
2−b
n+1,
2)2
+...
+(an
−bn
+1,n
)2=
d2相鄰式子相減消去 d2d
2, 得到(2
a1−b
1,1−
b2,1
)(b2
,1−b
1,1)
+...
+(2a
n−b1
,n−b
2,n)
(b2,
n−b1
,n)=
0..略
(2a_1-b_-b_)(b_-b_)+...+(2a_n-b_-b_)(b_-b_)=0\\
. \\
. \\略\\
\ \\(2
a1−
b1,1
−b2
,1)
(b2,
1−b
1,1
)+..
.+(2
an−
b1,n
−b2
,n)
(b2,
n−b
1,n
)=0.
.略發現已經是乙個線性方程組了,
係數a[i
,j]=
2∗(b
[i+1
,j]−
b[i,
j])a
[i,j
]=2∗
(b[i
+1,j
]−b[
i,j]
)常數a[i
,n+1
]=∑j
=1n(
b[i,
j]+b
[i+1
,j])
∗(b[
i+1,
j]−b
[i,j
])a[
i,n+
1]=j
=1∑n
(b[
i,j]
+b[i
+1,j
])∗(
b[i+
1,j]
−b[i
,j])
於是高斯消元o(n
3)o(
n3) 求解 .co
deco
de
#include
#define reg register
const
int maxn =15;
int n;
double a[maxn]
[maxn]
;double b[maxn]
[maxn]
;int
main()
for(reg int i =
1; i <= n; i ++)}
for(reg int i = n; i >=
1; i --
)for
(reg int j = i+
1; j <= n; j ++
) a[i]
[n+1]-
= a[i]
[j]*a[j]
[n+1];
for(reg int i =
1; i <= n; i ++
)printf
("%.3lf "
, a[i]
[n+1])
;return0;
}
BZOJ1013 球形空間產生器(高斯消元)
有乙個球形空間產生器能夠在n維空間中產生乙個堅硬的球體。現在,你被困在了這個n維球體中,你只知道球 面上n 1個點的座標,你需要以最快的速度確定這個n維球體的球心座標,以便於摧毀這個球形空間產生器。第一行是乙個整數n 1 n 10 接下來的n 1行,每行有n個實數,表示球面上一點的n維座標。每乙個實...
acwing 207 球形空間產生器 高斯消元
題目位址 題目指出有解。設球心為 x1,x2,xn 則我們可以得到 j 0n a i,j xj 2 sum n a x j 2 j 0n ai,j x j 2 c。將其化簡,讓第一行減去第二行,依次類推。可以得到 j 0n a i,j ai 1 j j 0 n ai j2 ai 1 j2 sum n...
BZOJ1013 球形空間產生器(高斯消元)
有乙個球形空間產生器能夠在n維空間中產生乙個堅硬的球體。現在,你被困在了這個n維球體中,你只知道球 面上n 1個點的座標,你需要以最快的速度確定這個n維球體的球心座標,以便於摧毀這個球形空間產生器。第一行是乙個整數n 1 n 10 接下來的n 1行,每行有n個實數,表示球面上一點的n維座標。每乙個實...