演算法研究 帶權中位數問題

2022-09-04 01:18:12 字數 1111 閱讀 9764

1、對於x1,x2,...xn的中位數即各xi的帶權中位數,此處權值wi=1/n, i=1,2....n

此時x1,x2...xn的中位數為xk,k=┗(n+1)/2┛.則x1,x2...x(k-1)的權值和為┗(n-1)/2┛/n<=(n-1)/2n<1/2

2、通過排序,在o(nlgn)的最壞情況時間內求出n個元素的帶權中位數

先用堆排序(按xi的增序)。設排序後的陣列為x1,x2...xn.

再用乙個陣列zw[1,2...n]:

zw[1]=w[1]

for i=2->n

zw[i]=w[i]+w[i-1]

if(zw[n]-zw[i]<=1/2)

resultpos=i

for i=2->n

if(zw[i-1]<1/2 and zw[n]-zw[i]<=1/2)

resultpos=i

3、利用乙個線性時間的中位數演算法(如select演算法),在最壞情況o(n)時間內求出n個數的帶權中位數

思想:先用select選出n/2小的元素。由於select中呼叫了partition,對陣列進行了劃分,則x1...x(n/2-1)的數都比x(n/2)小,後面的數都比x(n/2)大。統計低區和高區的wi之和。如果滿足帶權中位數的要求,則此時x(n/2)為所求元素。否則,如果低區的權重之後大於1/2,則對低區遞迴呼叫次演算法。如果高區的權重大於1/2,則對高區呼叫此演算法。直到找到帶權中位數

4、郵局位置問題: 已知n個點p1,p2, ...pn及他們相聯絡的權重w1,w2....wn,找到一點p(不一定是輸入點中的乙個),使和式wid(p,pi)最小,此處d(a,b)表示點a和b之間的距離,d(a,b)=|a-b|.

1) 證明帶權中位數是一維郵局位置問題的最佳解決方案。其中所有點都是實數。

2) 找出二維郵局位置問題的最佳解答。其中所有點是(x,y),並且(x1,y1)與(x2,y2)距離是manhattan距離。d(a,b)=|x1-x2|+|y1-y2|

1)證明:採用反證法。假設帶權中位數的位置為xk(一定是n個點中的某乙個)。並假設最佳位置點為xm,xm=xk+delta(x) (delta(x)可以大於0或者小於0)

直觀理解?

2)因為x和y是獨立變數,則結果是兩個一維的帶權中位數的疊加。

中位數及帶權中位數問題

資訊學競賽總是時不時與數學產生微妙的關係,中位數及帶權中位數問題有時常常成為解題的關鍵,今日有時間,所以梳理一下。先從一到簡單的題看起 士兵站隊問題 在乙個劃分成網格的操場上,n個士兵散亂地站在網格點上。網格點由整數座標 x,y 表示。士兵們可以沿網格邊上 下 左 右移動一步,但在同一時刻任一網格點...

帶權中位數

話說在3085年,外星人打算來入侵地球,這個訊息被我國的情報部門秘密截獲,於是便打算聯絡世界各個國家,一 起研究商量對策。由於每個國家所需派的技術員人數不同,所以目前無法決定到底要在哪個國家設定個研究所進行 研究,幸運的是所有國家都在一條直線上,現在知道每個國家與我國的距離和該國的研究員人數。請你為...

中位數及帶權中位數題集

codevs 3625 1 include 2 using namespace std 3int x 11111 y 11111 4 intmain 5code codeforces round 512 div.2,based on technocup 2019 elimination round ...