「如果昨天是明天的話就好了,這樣今天就是周五了」,那麼今天是星期幾?
涉及到教學的東西還是放著我來,兩句話給你解釋清楚。
情況一:如果昨天是明天(的星期數)的話,那麼今天就是周五。
解釋:這裡的假設是以昨天為基礎的,所以如果希望今天是周五,那麼昨天就該是周四,也就是說現實中明天(的星期數)才是周四,那麼現實中今天是周三。情況二:如果昨天(的星期數)是明天的話,那麼今天就是周五。
解釋:這裡的假設是以明天為基礎的,所以如果希望今天是周五,那麼明天就該是周六,也就是說現實中昨天(的星期數)才是周六,那麼現實中今天是周日。如果讀著還是費勁,我再進一步翻譯下好了:
如果昨天是周四(明天),那今天就是周五了——明天是周四,今天是周三。如果周六(昨天)是明天,那今天就是周五了——昨天是周六,今天是周日。問題的核心就在於,你到底把哪天當作假設的前提。啊?只有我一個人一直都覺得是周五嗎?囧
要是昨天(周四加班好痛苦)是明天(周六休息可以吃吃喝喝買買買)就好了,
這樣今天就是周五(?(? ? ??)準備下班了哦也)了。(這樣天天都是周五,每個明天都是周六哎呦猴嗨森~~)好了啦,其實重點就是第一句。對於已經沉溺於第一句幻想里的人來說,第二句說成什麼樣子都是正常的~~周五的昨天是周四,明天是周四,那麼今天是周三。周五的明天是周六,昨天是周六,那麼今天是周日。
===== 兩種理解 =====
由於祈使句中虛擬語氣的虛擬對象指代不明,原文是可能產生歧義的——原文並未給出上下文,也沒有語調。很明顯,在正常的中文交流中,通常不會出現這樣可能模稜兩可的句子。
不難看出,歧義在於原文可能因時間參考系的不同產生以下兩種理解:
- 假設的昨天是實際的明天原文:如果昨天是明天(周四)就好了,這樣今天就周五了。理解:昨天不是周四,但是希望昨天可以成為實際的明天(周四)。計算:解得:真實的今天是星期三。
- 實際的昨天是假設的明天原文:如果昨天(周六)是明天就好了,這樣今天就周五了。理解:明天不是周六,但是希望明天可以成為實際的昨天(周六)。計算:解得:真實的今天是星期日。
===== 三種賦值 =====
兩種理解得到了兩個答案,那麼問題來了,究竟哪個答案更符合語言實際?
請嘗試體會以下句子的含義。
第一組
- 如果我是王思聰就好了,這樣我就有很多錢。(正確)如果王思聰是我就好了,這樣……(錯誤,這樣王思聰就會突然變得沒錢。)
- 如果周五是周六就好了,這樣周五就不用上班了。(正確)如果周六是周五就好了,這樣……(錯誤,這樣周六也要上班了。)
- 如果 n 是 3,這樣 n + 2 就是 5。(正確)如果 3 是 n,這樣……(錯誤,常數怎麼可以給變數賦值?)
在這一組的語境里,祈使句「如果 A 是 B 就好了」中 A 是變數,B 是定量,B 給 A 賦值,語義是「希望 A 可以具有 B 的屬性」。
第二組
- 如果我老公是王思聰就好了,這樣我就有很多錢。(說得過去)如果王思聰是我老公就好了,這樣我就有很多錢。(也說得過去)
- 如果明天是萬聖節就好了,這樣我買的道具就能用了。(說得過去)如果萬聖節是明天就好了,這樣我買的道具就能用了。(也說得過去)
- 如果 n 的值是 3,這樣 n + 2 就是 5。(正確)如果 3 是 n 的值,這樣 n + 2 就是 5。(也正確)
在這一組的語境里,祈使句「如果 A 是 B 就好了」A、B 誰被誰賦值,要根據具體實際去理解。
第三組
- 如果王思聰(重讀)是我老公就好了,這樣我就有很多錢。(說得過去)如果王思聰是我老公(重讀)就好了,這樣王思聰就沒錢了。(咦,也說得過去了!)
- 如果周五是周六(重讀)就好了,這樣周五就不用上班了。(說得過去)如果周五(重讀)是周六就好了,這樣周六也特么要上班了。(花擦,也說得過去!)
在這一組的語境里,祈使句「如果 A 是 B 就好了」A、B 誰被誰賦值,要根據重音或語調去判斷,重讀的賦值給未重讀的。
===== 總結 =====
中文祈使句「如果 A 是 B 就好了」中,A、B 並不是邏輯相等的關係,而是賦值與被賦值的關係。基於以上三種賦值的可能情況,在缺乏對實際情況的了解,缺乏利用語境、重音或語調等語用學(pragmatics)意義的元素來幫助消除歧義的情況下人們可能會對原文產生不同的理解。當然,如果可以忽略語用意義,以語義學(semantics)和自然語言處理(NLP)的角度來看,原文往往會默認被腦補成第一組語境,也就是後者給前者賦值,這也是現實中認為答案是星期三的人居多的主要原因。
不僅是祈使句虛擬語氣的虛擬對象指代不明,原文中所問的「今天」也有語言陷阱——這正是因為自然語言對比形式語言最大的特徵在於自然語言的不嚴密性容易引起誤解。萊布尼茨認為,各種自然語言的民族性、地域性、不精確性和不規則性無法為哲學提供明確的概念和嚴密的推理,他主張在哲學話語中用數理邏輯語言取代自然語言。這也就意味著類似原文的虛擬語氣表述必須明確被虛擬或者說被賦值的對象才具有唯一的解。而以格萊斯的二分法來看,人們對語言的認知有一個從「認識語義含義」到「理解語用含義」的語用推斷(pragmatic inference)過程,應該說,本題原文的表述是不符合中文語言習慣的,在語用推斷的過程中因為必要信息的缺乏而產生誤解。很少有人會說,如果昨天是明天就好了;取而代之的是,人們會說:如果昨天是周四就好了;如果周六是明天就好了。
對於語言學和自然語言處理沒有研究,只能拋磚引玉了。
那麼長篇大論,有意思嗎?
要想今天是周五,那麼 $昨天=周四,或者 周六=$明天。
所有程序員請跟我來,你們平時應該是左邊做變數的吧?請選擇其中一種表達式,得出結果。其它人請繼續吵架。int tod=5,yes=tod-1,tom=tod+1;
yes=tom;tod=yes+1;cout&<&辦公室今天吵了一天了。。。。
如果昨天是明天就好了,那麼今天就是周五了。請問,句子中的今天是周幾?- 一般答案
設:x=今天,」 如果昨天是明天」理解為「把昨天變成明天」
則昨天(x-1)經過函數f運算,變成明天(x+1)
即,f(x-1)=x+1
f(x-1)=(x-1)+2
變數代換法後,f(x)=x+2
今天經過函數f運算後,變為周五,即
f(x)=5
x+2=5
x=3
- 二般答案
設:x=今天,「如果昨天是明天」中的「是」不要想當然理解為「變成」,或者可以把此句中的「明天」理解為「第二天」,即
昨天=x-1,今天x經過函數f運算得到f(x),則第二天為f(x)+1
f(x)=5
且 x-1=f(x)+1
則 x-1=5+1
X=7
- 結論
此題的關鍵就在於讀者先入為主的把時間錨點設在哪裡。
如果昨天是明天就好了,那麼今天就是周五了。
------------A---------------B---------------------------
大部分得到周三答案的人,是把時間錨點設定在了B點,認為前半句的「昨天」「明天」都是相對現實生活中的今天。而得到答案為周天的人,把時間錨點定在了A點,這部分人是具有非常人的思辨能力(也可以說是劍走偏鋒的人)。
其實可以延伸一下,用性格色彩學來解釋:
得到答案周三的人,這部分人更為理性,邏輯思維能力強,做事有計劃性,會合理規避風險,以求創造最大的「性價比」。
而得到答案周日的人更為感性,有獨特的思維方式,是頭腦風暴的上等參與人員,多個角度看世界,擁有更大的機會成為一個藝術家。
另:至於那些說「人家問題里第二句不是說了今天是周五了嘛」而得出今天是周五的朋友,以及那些只想每天都是周六的朋友——我只能說,你們適合安靜的做一個逗比~世界缺了你們就太無趣了。代表周三和周日感謝你們。
以上。不同意得票首位徐榮的答案,基本同意得票第二位周毅的答案。
我的理解是這句話是自帶消歧。一句話總結,「把周六賦給昨天,你是不知道昨天原來是哪天的」。關鍵點如下:1. 兩個參考系
如大家所說,命題中存在一條虛擬語氣下的假想時間參考系t,和一條真實時間參考系t。這裡假設t和t的取值都是1~7連續的正整數,已經夠用。便於敘述,今天是周五簡稱為假今天。2. 「是」理解為賦值
這個也討論的比較清楚了。(這一點後面有更新)3. 「昨天」和「明天」誰真誰假
這是我想重點說的問題。在之前的前提下,考慮昨天是真,而明天是相對於假今天,也就是(昨天,假明天)組合。該種情況實際是將假明天的值賦給昨天。因為涉及到賦值,所以我們假設賦值之前在真實參考系下存在一個初始值t0,由此得:1) Set t=t0;(真實參考系初始化)2) Set t=t0;3) Set t-1=t+1;4) if ((t==5) == true) then solve t;如果4)有解,則4)的判斷為真,帶入3),有t=7,即周日的答案。但注意!我們並沒有得到任何關於t0的信息。也就是說,賦值語句將一個真實參考系併入了假想參考系,阻斷了我們獲取賦值之前信息的途徑。從文字的角度來看,原命題可以表述成為:如果昨天是假明天,則假今天是周五。可以看出,昨天到底是哪一天這句話並沒有給出。因此在這種語境下,我們無法給出確切的答案。再來考慮(假昨天,明天)的組合。該種情況將明天的值賦給假昨天。同樣,我們也假設假想參考系下存在一個初始值t0,得:
1) Set t=t0;2) Set t=t0;3) Set t-1=t+1;4) if ((t==5) == true) then solve t;同上,4) 帶入3),有t=3,即周三的答案。這裡面會不會對稱地也存在不確定的問題?存在,但注意!由於被賦值的是假想參考系的對象,因此不確定的是t』0,但沒人關心t0是什麼。重要的是t=3在此情況下是確定的。綜合以上考慮,由於在第一種情況下實際上我們得不出確切的答案,第二種有確切答案的情況應該為正確的理解。
4. 關於平移
平移的問題在於,實際上沒有解決不確定性的問題。向前平移,即「如果前天是今天,則今天是周五」等價於前面討論的第一種情形,兩個今天都是假的,前天是真實的,如果分句沒有給出前天到底是哪一天的判斷,因此我們不知道前天到底是哪一天。====Update====
5. 關於「是」的理解感覺本句中「是」這個詞在自然語言中的意思是造成兩種解釋差異的根源。在周三的思路中,「是」嚴格表示賦值;在周日和周三雙解的思路中,「是」理解為兩個參考系下兩者的星期數相等。以上,供參考。日、1、2、3、4、5、6
「如果昨天是明天」那麼今天就是後天「那麼今天就是星期五了」誰的後天是星期五?三唄!=.=! 出題人好作。。。
更新:@莫非 是對的,答案應該是周日或周三
之所以有兩個答案在於是將昨天做明天還是明天做昨天,是我疏忽了QAQ@咆躁許 說:
昨天是明天
所以今天是後天
後天是周五
今天是周三變數賦值的理解方法很好,原題在語意上很難判斷是把昨天的星期賦給明天還是把明天的星期賦給昨天。
同邏輯換種語境去理解:「如果你老婆是我老婆就好了」,具體是讓你老婆成為我老婆還是讓我老婆成為你老婆是要看具體語境的。或者我對程序員說「要是你工資是我工資就好了」,那麼我是想降低他的工資呢還是提高我的工資呢?自然語言問題,非要說邏輯,假命題可以包含所有命題,說今天是星期八都可以。
這裡的昨天和明天都是確認的現實日期,今天是昨天的後一天。
今天是周五——周五的昨天應該是周四,所以明天是周四,那麼今天是周三。
當然,還有一種理解方法,就是昨天和明天並不是特指星期幾,而是指希望今天是昨天的前一天,把明天變成昨天……但是這樣的話,一般都會希望今天是周六……設明天=X,可得方程:
「如果昨天是X的話就好了,這樣今天就是周五了」解得:
X=星期四明天星期四。故今天星期三。
附Q:為什麼不設昨天=X?A:想想哪句話比較符合語言習慣。「如果昨天是周X就好了」;「如果周X是明天就好了」。我不知道列位生活中的體驗如何。。按我的語感,後面這句太彆扭了。我覺得這句話里的X應該是「明天」。當然,並沒有硬性證據說明「昨天」不可以做X。哼,你們這些缺少母語語感的理科生。。。如果我的錢是日元,那我就是百萬富翁了!
如果我的錢是日元,那我就窮得揭不開鍋了!差不多就是這個意思。言簡意賅。一千個哈姆雷特,分3類:
周三or周日or久思無解類①:「昨天」是假設後的昨天,「明天」是實際中的明天——
If:周五-1=x+1,So:x=周五-1-1,也即是周三。類②:「昨天」是實際中的昨天,「明天」是假設後的明天——
If:x-1=周五+1,So:x=周五+1+1,也即是周日。類③:「昨天」是實際中的昨天,「明天」是實際中的明天/「昨天」是假設後的昨天,「明天」是假設後的明天——
那今天就是任何一個「今天」啊,又或者今天本來就是「周五」。非得在邏輯里跟自己較什麼勁。過去了的,我為什麼非得把它複製變將來?聽過很多或正或歪的道理,但依舊沒把「今天」過好。