馬後炮一篇 關於Futurama S06E10中的數學問題

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   strong   

      時間要追溯到2013年9月,我看到過這樣一個有趣的問題,來源於matrix67的一篇博文。

那麼把題目摘錄一下:


“ 經典 Geek 動畫 Futurama 上周播出了第 6 季的第 10 集 The Prisoner of Benda 。在這一集中,教授 Farnsworth 發明了一種“心靈對換機”,它可以把兩個人的思想互相對換,使得 A 的大腦跑進 B 的身體裡,而 B 的大腦則跑到 A 的身體裡。 Farnsworth 和 Amy 都想得到對方的身體,便成為了這台機器的第一對實驗者。等到他們爽夠了想換回來後, Farnsworth 卻發現了一個嚴重的問題:已經互換過大腦的兩個身體不能再次進行大腦對換操作。但這並不表示兩個人完全沒有希望回到自己的身體裡—— Farnsworth 突然想到,或許可以用第三者作為一個臨時的大腦儲存空間,從而實現間接對換。正巧機器人 Bender 進了實驗室,於是(身為 Amy 的) Farnsworth 和 Bender 又坐上了機器,這下 Farnsworth 的大腦便跑到 Bender 身體裡了,而 Bender 的大腦則進了 Amy 的身體裡。此時 Farnsworth 才意識到,引入一個第三者是不夠的——再讓(身為 Bender 的) Farnsworth 和(身為 Farnsworth 的) Amy 互換大腦,可以讓 Farnsworth 恢複原狀,但同時 Amy 的大腦會跑到 Bender 的身體裡去;這樣 Bender 和 Amy 的身體正好顛倒了,而他們卻已不能再次使用機器。換句話說,要想恢複兩個換位了的大腦,需要引入不止一個新的人。


但現在,問題已經變得更加複雜了——這下已經產生了三個大腦位置錯亂的人。大家很容易聯想到一個更一般的問題:給定 n 個人以及他們之前使用“心靈對換機”的記錄,至少得引入多少個新的人,才能讓所有人的大腦都“物歸原主”呢?”


條件需要注意的是:n個人兩兩之間可能都已經換過了,所以後續的交換隻能在新人和舊人,新人和新人之間互換。


在原先的文章裡,最後給出的解答是這樣的:
無論此前n個人的交換有多混亂,最後只需要引入兩個人,可以讓大家複原。

軀體:1  2  3  4  5  6  …  k-1  k
大腦:2  3  4  5  6  7  …   k   1

首先解答這樣一種特殊的情況
在2  3  4  5  6  …  k   1  的情況下,可以通過一種構造性的置換方法    
2  3  4  5  6  …  k   1  x  y  
x  3  4  5  6  …  k   1  2  y
x  y  4  5  6  …  k   1  2  3
x  y  3  5  6  …  k   1  2  4
x  y  3  4  6  …  k   1  2  5
x  y  3  4  5  …  k   1  2  6
… … …
x  y  3  4  5  … k-1  1  2  k
x  y  3  4  5  … k-1  k  2  1
x  2  3  4  5  … k-1  k  y  1
1  2  3  4  5  … k-1  k  y  x
1  2  3  4  5  … k-1  k  x y

但是如何面對一般的情形呢?

原文是這樣解釋的:

“注意到一個 1 到 n 的排列總能分解成若干個迴圈的乘積,對每個迴圈分別進行上述操作 ” 

我覺得這句話並沒有把這個解答解釋得比較充分,讓人不太明白,這是這篇文章比較遺憾的地方。


下面說一下我的思考吧


首先,引入這樣一個問題。

一個排列,每個數字i都不在第i個位置上,需要多少次交換,才能變換到1,2,3, ..., n-1, n


例如排列 2  4  1  3,最少需要3次交換。排列 2  1  4  3則只需要2次交換。


因為前者{1,2,3,4}構成了一個全亂環,後者{1,2}   {3, 4}構成了2個全亂環(額...全亂環,姑且這麼描述吧,暫時沒找到正規俗語-_-||)。


排列 1 3 4 2不是我們考慮的情形,因為1在第1個位置。


在一個大小為n的完全亂序環中,最少需要n-1次交換,才能還原。


我們暫時考慮這樣的排列:每個數字i都不在排列的第i個位置上,並且需要通過n-1次交換才能還原到1 2 3 4  ... n-1 n


如果只引入一個人x,策略是依次把1,2,3,4心靈換到身體上(紅色表示舊人和新人已經做過交換)

2  4  1  3  x

2  4 x  3  1

1  4  x  3  2

1  2  x  3  4

1  2  x  4 3

好,到這裡比較尷尬了,因為第一次5號身體和3號已經換過了所以不能再換了


怎麼辦?


那麼只好引入第2個救星了y。他的作用是先和裝有1號心靈的身體互換,避免x最後無法交換的困境

2  4  1  3   x  y

2  4  y  3   x  1

x 4  y  3   2  1

x  2  y  3   4  1

x  2  y  4   3  1    

只有x一個人時的困境不再了,3可以和y交換了      

x  2  3 4  y  1

1  2  3  4  y  x

1  2  3  4  x  y

總之,解決的辦法就是:

1)y先和1號心靈交換,

2)然後由x的身體把2,3,4,... n按照心靈的順序各歸其位,

3)再由y的身體把1號歸位,

4)最後x y互換。


於是,各歸其位,世界和平了。 :D

 

等等,我們剛才說了排列中只有一個全亂環的情況,如果有多個全亂環呢?

其實很簡單,對每一個全亂環都用上述的方法單獨處理就行了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.