球形空間產生器 高斯消元 模擬退火

2022-05-20 06:08:32 字數 3240 閱讀 7401

球型空

間產生器

球型空間

產生器

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維座標。每乙個實...