我是不太清楚版主有沒有國中程度啦,不過我相信對方的EQ大概只有國中程度,要不然就是版主發言過當,碰到對方的G點。不過因為不是事主,這事也不好評論,因此就略過不談吧!
首先是對方的解法,邏輯上是沒有問題的。不過版主一開始提出的質詢倒是讓我想起初學程式時,對n=n+k這個式子的疑惑,因為當方向反過來,似乎就不通數學邏輯了?有學過程式語言都知道,這裡的單個=有"將右側的數值指派給左側變數"的意思。這種邏輯上的錯誤是不懂程式語言的人常犯的錯的。或許版主可以學學程式語言,這樣在判斷這種的邏輯上真的是相當有幫助的。
對方的解題邏輯是這樣的,因為不能夠知道自己頭上的寶石顏色,而為了能夠讓紅寶石地精"同時"的站出來,就必須在數量跟日子上面下功夫。這裡可以分為兩種:紅寶石地精跟綠寶石地精來討論。在這之前,必須先定義:
1.總地精數不知,亦不重要,略過。
2.設這群地精中,紅寶石地精的數量為變數n,其中n大於等於0(因為沒有-1隻)
3.設每隻地精所看到的紅寶石地精數量為變數r。
對紅寶石地精來說,r=n-1;對綠寶石地精來說,r=n。
4.設一個變數為day,對所有的地精來說,定當魔王開始抓地精出來唱軍歌的第一天為day==1。
(這項相當重要,如果有的地精認為第一天是被抓進去的時間呢?或是有的地精認為有第零天呢?考量到要"同時",在時間的規範上要有一統一且嚴格、明確的標準。)
到這裡,我們就可以開始套入數據來實際解題一次了。
根據版主朋友的解法,看到x位,就在第x+1天站出來:
設有10位紅寶石地精,n=10:
在第x+1天站出來,day=r+1
則對紅寶石地精來說,他看到r=10-1=9,day=9+1,則他會在第10天站出來
對綠寶石地精來說,他看到r=10,day=10+1,則他會在第11天站出來
因此,當第10天時,由於所有紅寶石地精都站出來了,於是他們就自由了,自然也沒有第11天。
但是,如果
用版主朋友的解法,可能確實會有點問題:
設
沒有紅寶石地精(被魔王唬了!!!),則n=0
則對綠寶石地精來說,他一個都沒看到,r=0,day=r+1=1,他在第一天就會站出來。
因此當他們開始被魔王強迫唱軍歌的第一天,所有綠寶石地精都勇敢的站了出來,成為魔王永遠的好朋友.....。
當然,如果題目有前提說一定同時存在紅寶石地精跟綠寶石地精就當我沒說。
不過,換個方式講,如果day不等於r+1也可以解。因此我這邊大膽提出
通解應該是:
對每個地精來說,看到Y位紅寶石地精,則在Y+k天站出來,其中k>0,k為整數。
希望有人不吝賜教,新人發言,多多包涵。