探討無限!!!有解嗎???

2010-01-02 6:40 am
小龍身為一個"無限旅社"的經理,在無限旅社裡擁有無限個房間(房號為1.2.3........無限),且旅社已客滿,某天來了一個客人,小龍便把每個房間的客人往後順延一號,因此空出了1號房間給新客人,旅社依然客滿.
某天又來了一團無限多的客人,小龍便把每個房間的客人房號乘2,而空出了無限多個奇數房號的房間給此批客人,旅社依然客滿.
今天,來了無限多團且每團有無限多個客人,請問小龍該怎麼分配房間呢???
條件:(1)每個房間只能住一人
(2)不能留下空房間
(3)小龍必須清楚的知道哪個房間住著哪團的哪個客人 .
更新1:

to:myisland8132 <1>沒錯,這是個古老的問題,不過明顯的以"質數"的方式分配房間似乎不行,因為這樣一來就會空出很多房間,與我的條件(2)不符. <2>根據第(3)個條件,可否提出公式,譬如說我想知道第64851276房和96845200房分別住的是第幾個旅行團的第幾個客人?

更新2:

to:面目黧黑的老王 請問你的表格的每一行列都有其規律性嗎?同意你的解法,你說要算出64851276和96845200在表格中的(i,j)位置,請問該怎麼求出i和j呢?

回答 (3)

2010-01-02 7:18 am
✔ 最佳答案
可以這麼做
將正整數如下表排列

圖片參考:http://imgcld.yimg.com/8/n/AA00640066/o/101001010722113869301680.jpg

那麼1號房客不動,將2號房客請到3號
k號到1+2+...+k=k(k+1)/2號
空出來的房號在表中的第i列第j行,號碼為(i+j-1)(i+j-2)/2+j
於是可以請第s團第t個客人住在第(s+1)列第t行的號碼的房間即可


2010-01-02 08:34:58 補充:
若要知道n號房住的是誰
計算n是在第(i,j)的位置
令u_n=[(1+根號(8n-7))/2] (其中[ x ]表示不大於x的最大整數)
那麼u_n=i+j-1
j=n-(u_n)(u_n-1)/2
i=u_n-j+1
這樣就知道是第(i-1)團的第j個客人

2010-01-02 08:37:00 補充:
原來是歷史名題,
可否請教知識長,An的通式能否寫出來??
或是A123456789是多少?
以及第123456789號房是住誰??

2010-01-02 15:48:21 補充:
說真的,我覺得找An的通式是件耐人尋味的事,我覺得很麻煩,算不出來,所以想問問知識長是否有答案。
至於我所用的方式,叫什麼名字或是誰用過,基本上我對於計這些東西不在行,就是以前上高微時一定會遇到證明有理數可數,比較簡單就是把
n/m對應到2^m*3^n
或者是把有理數排成這個樣子
在看到這個問題時,就知道題義就是要將w*w~w,要沒有空房,才會想起這個方式。

2010-01-03 16:59:04 補充:
照我上面補充的,如果是64851276
u=11389
j=64851276-u(u-1)/2=2310
i=11389-2310+1=9080

如果是96845200
u=13917
j=10714
i=3204
2010-01-02 9:39 am
「依序編號」很重要。意指數目與自然數一一對應。

若來了無限多的客人,每人對應一個不同的「實數」,那無限旅社就無法接待了。
2010-01-02 7:26 am
這是著名的「希爾伯特旅館」共有5條問題﹐每條越來越難。茲論述如下。
情形一:旅館外面來了1個人要住宿?
老闆請1號房的人搬到2號房,2號房的人搬到3號房,依此規則n號房的人搬到n+1號房,新來的那個人住進一號房,這樣每個人都有房間住了。
情形二:旅館外面來了10個人要住宿?
有了剛剛的經驗,老闆請n號房的搬到n+10號,這樣1~10號房就空出來給新來的10個人住。
至此我們可以知道只要是有限個人來,都可以依樣畫葫蘆的處理,但是馬上又有新的狀況發生了。
情形三:旅館外面來了一個旅行團要住宿,這個旅行團有無限多個人,每個人都有依序編號,老闆必須要明確的指出第幾號的人住第幾間?
老闆想了想,就把全部的人先請出房間,然後請原來1號房的人搬到2號房,2號房的人搬到4號房,依此規則n號房的人搬到2n號房,這樣所有的單數號房都空出來了,接著就請旅行團第m號的人住進第2m-1號房,這樣所有的人也都有房間住了。
情形四:旅館外面又來了一個有無限多個人的旅行團,但是老闆覺得要大家一直換房間很不好意思,所以就決定想一個辦法,只要百分之一的人更換房間就好。
首先老闆將房間號碼為100倍數的房客都請出來,然後請第100號房的搬到200號房,200號房的搬到400號房,依此規則100n號房的人搬到200n號房,而旅行團第m號的人就住進100(2m-1)號房。
啊哈,又解決了一道難題!
情形五:這時旅館外面人聲鼎沸,老闆一看,哇哇哇,來了無限多個旅行團,每個旅行團有無限多個人,旅行團跟人也都有依序編號,這些人全部都要住宿,這下該怎麼辦?
老闆想一想,搬出數千年前老祖宗就已經知道的知識:質數有無限多個,利用質數的性質,這問題就迎刃而解了。首先將原有的房客都請出來,住1號房的的改到2^1號房,n號房的改到2^n號房,這樣原本的房客就都有地方住了,然後再安排第一個旅行團的第1個人住到3^1號房,第2個人住到3^2號房,第m個人住到3^m號房,依此方法,第x個旅行團的第y個人安排到第x+1個質數的y次方號房,因為質數有無限多個,而且次方彼此都不會重複,所以這問題又解決了,但是不久之後有人來抗議了,代表發言的是是第9999個旅行團的9999號,他跟老闆說:我要住第10000個質數的9999次方號房,但是第10000個質數是多少阿?老闆聽了也楞一下,糟糕了,這樣下去一定會亂七八糟,趕快換個新方法,他先將自然數中10的倍數去掉,剩下的數字由小到大排列,第n個數字以An表示,例如A1=1、A2=2...A10=11、A90=99,然後請原來住1號房的人還是住1號房,2號房的改到10號房,3號房的改到100號房,n號房的改到10^(n-1)號房,接著再安排第一個旅行團的第1個人住到A2號房,第2個人住到A2 10號房,第m個人住到A2 10^(m-1)號房,依此方法,第x個旅行團的第y個人安排到A(x+1)10^(y-1)號房,這樣大家也都有房間住了,而且絕對不會有重複的情形。

2010-01-02 13:07:42 補充:
嗯。方法一留下好多空房間。方法二是理論上可行﹐雖然好似沒有公式﹐不過可以用電腦編程找到答案。不過我同意「面目黧黑的老王」的方法較好﹐所以應該添加上原網頁的故事中。老王您個方法的靈感是不是來自 data structure and algorithms ?


收錄日期: 2021-04-26 14:00:28
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20100101000010KK07221

檢視 Wayback Machine 備份