1. 程式人生 > >關於分金幣的問題

關於分金幣的問題

【解析】
此處附上他人解析很清楚了 首先最終每個人的金幣數量可以計算出來,它等於金幣總數除以人數n。接下來用M來表示每個人最終擁有的金數現在假設編號為 i 的人初始有Ai 枚金幣,對於1號來說,他給了2號x1枚金幣,還剩Ai -x1枚金幣;但是3號給了他x2枚金幣,所以還剩A1-x1+x2枚金幣。所以A1-x1+x2=M。同理對於第2個人,有A2-x2+x3=M。最終得到n個方程,嘗試用x1表示出其他的xi ,則本題就變成了單變數的極值問題。其實x1和x2代表的就是給出去的硬幣和收回來的硬幣。
對於第1個人,A1-x1+x2=M → x2=M-A1+x1=x1-C1(C1=A1-M)
對於第2個人,A2-x2+x3=M → x3=M-A2+x2=2M-A1-A2+x1=x1-C2(C2=A1+A2-2M)
對於第3個人,A3-x3+x4=M → x4=M-A3+x3=3M-A1-A2-A3+x1=x1-C3(C3=A1+A2+A3-3M)......
我們希望所有xi 的絕對值之和儘量小,即|x1|+|x1-C1|+|x1-C2|+...+|x1-Cn-1|要最小。其實|x1-Ci|的幾何意義是數軸上的點x1到Ci 的距離,所以問題變成了:給定數軸上n個點,找出一個到他們距離之和儘量小的點。也就是說我們是要尋找最x1這個點在哪裡,我們才可以使總和最小,其實就是中位數的時候。