《程式設計師的數學》思考題(一)

2021-09-11 14:51:22 字數 4107 閱讀 3565

豆瓣:程式設計師的數學

《程式設計師的數學》這本書,除了前兩章介紹數學的基本概念外,其它章節主要通過思考題的方式,在解答過程中給我們講解數學知識和思維方式。所以看完整本書後,通過對思考題的不斷訓練 ,可以使我們串起書中的知識點,鞏固知識。為了便於日後的複習,這裡整理了書中絕大多數的思考題,內容舒適,請放心食用。

ps:答案只有結果,不包含解答過程。

// -***************== let's begin ***************==

p64:今天是星期日,那麼100天以後是星期幾?

**答:**星期二。

p66:今天是星期日,那麼10^100天以後是星期幾?

**答:**星期四。

p70:1234567^987654321的個位數是什麼?

答:7。

p71:棋子魔術

魔術師和他的徒弟在台上表演,下面有3位觀眾。魔術師蒙著眼睛。 (1)桌上隨機排列著7個黑白棋的棋子(圖3-4)。魔術師蒙著眼睛,看不到棋子。

(2)魔術師的徒弟看完這7枚棋子之後,又往右面添了一枚棋子,與其他棋子併排,這時則有8枚棋子(圖3-5)。魔術師依然蒙著眼睛。

(3)這時觀眾可將其中的1枚棋子翻轉,或不翻轉任何棋子(圖3-6)。

(4)魔術師摘下眼罩,觀察8枚棋子,然後馬上就能說出「觀眾翻轉了棋子」或「沒有翻轉棋子」,識破觀眾的行為。

魔術師是如何識破觀眾的行為的呢?

答:徒弟在觀眾擺放的7枚棋子中,數出黑棋的個數。如果黑棋數是奇數,就添黑棋。如果黑棋數是偶數,就添白棋。不管哪種情況,在最終的8個棋子中,黑棋必為偶數個。 觀眾的行為可以是以下(1)~(3)三種情況之一。 (1)觀眾翻轉白旗。那麼,黑棋就增加了1枚,即黑棋變為奇數個。 (2)觀眾翻轉黑棋。那麼,黑棋就減少了1枚,黑棋也變為奇數個。 (3)觀眾不翻轉棋子。黑棋仍然是偶數個。 魔術師摘下眼罩,馬上數出黑棋的個數。如果黑棋為奇數個,就說「觀眾翻轉了棋子」。如果為偶數個,就說「沒有翻轉棋子」。 這裡,徒弟擺放棋子使「黑棋個數為偶數」。若使「黑棋個數為奇數」也可以,只要魔術師和徒弟事先商量好就行。

p74:尋找戀人

在乙個小王國中,有8個村子(a~h)。如圖3-8所示,各個村子之間有道路相連(黑點表示村子,線表示道路)。而你要尋找流浪在這個王國的你唯一的戀人。 你的戀人住在8個村子中的某乙個裡。她每過1個月便順著道路去另乙個村子,每個月都一定會換村子,然而選擇哪個村子是隨機的,**不了。例如,如果戀人這個月住在g村,那麼下個月就住在「c、f、h中的某個村子」。 目前你手頭上掌握的確鑿資訊只有:1年前(12個月前),戀人住在g村。請求出這個戀人住在a村的概率。

**答:**概率為0。

p77:鋪設草蓆

如圖3-11所示,有這樣乙個房間。使用圖中右下角所示的草蓆能夠正好鋪滿房間嗎?前提是不能使用半張草蓆。

**答:**不能。

p79:哥尼斯堡七橋問題

在很久以前,有乙個叫哥尼斯堡的小城。小城被河流分割成了4塊陸地。人們為了連線這些陸地,建設了7座橋(圖3-13)。

現在你要找出走遍7座橋的方法。但是,必須遵守以下條件:

最後,如果能夠走遍7座橋的話,請說明一下方法。如果不能的話,也請說明一下。

答:

不能走遍哥尼斯堡七橋。

p88:存錢罐的錢

在你面前有乙個空存錢罐。

那麼,每天都這樣往存錢罐裡投入硬幣的話,第 100 天時的總金額為多少呢?

答:5050元。

p99:黑白棋子的顏色

黑白棋一面是白色,一面是黑色。現在,我們往棋盤上隨便仍幾枚棋子。有時會碰巧都是白色或都是黑色。但有時既有白棋,也有黑棋。

使用數學歸納法可以「證明」投擲的黑白棋的顏色一定相同。然而現實中這卻是不可能的。 那麼,請找出下述「證明」中的錯誤之處。 假設n為1以上的整數,用數學歸納法證明以下斷言t(n)對於1以上的所有整數n都成立。

步驟1:基地的證明證明t(1)成立。 斷言t(1)即「投擲1枚黑白棋子時,所有棋子的顏色一定相同」。棋子只有1個,顏色當然只有1種,因此t(1)成立。 這樣,步驟1就得到了證明。

步驟2:歸納的證明證明當k為1以上的任意整數時,「若t(k)成立,則t(k+1)也成立」。 首先假設「投擲k枚黑白棋子時,所有棋子的顏色一定相同」成立。現假設投擲k枚棋子後,再投擲一枚黑白棋。那麼投擲的棋子總數為k+1枚。 這裡,將投擲的棋子以每k枚為單位分為兩組,分別將這兩組稱為a和b(圖4-5)。

因為「投擲k枚黑白棋子時,所有棋子的顏色一定相同」的假設成立,所以a組的棋子(k枚)和b組的棋子(k枚),分別都是相同色。而通過圖4-5可見,兩組共有的棋子為k-1枚。因為各組的棋子顏色相同,又有兩組共有的棋子,所有k+1枚棋子顏色相同。這就是斷言t(k+1)。 這樣,步驟2就得到了證明。 通過數學歸納法,證明了斷言t(n)對於1以上的所有整數n都成立。這個證明有什麼不對的地方呢?

答:步驟1沒有問題。若棋子只有1枚,那麼就只有1種顏色。 問題在步驟2的圖(圖4-5)中。實際上,該圖在k=1時不成立。k=1時,兩組棋子分別都只有1枚。雙方共有的棋子為k-1枚,而k-1=0,所有不存在同屬於兩個組的棋子(圖4-6)。

因此在數學歸納法的兩個步驟中,步驟2是無法得到證明的。

p111:植樹問題

在10公尺長的路上,從路的一端起每隔1公尺種一棵樹,那麼需要種多少顆樹?

答:11棵。

p112:最後的編號

記憶體中排列著程式要處理的100個資料。從第1個開始順次編號為0號、1號、2號、3號......那麼,最後1個資料的編號是多少?

答:99號。

p115:加法法則

在一副撲克牌中,有10張紅桃數字牌(a、2、3、4、5、6、7、8、9、10),3張紅桃花牌(j、q、k)。那麼紅桃共有多少張?

答:13張。

p115:控制亮燈的撲克牌

在一副撲克牌中,有13個級別(a、2、3、4、5、6、7、8、9、10、j、q、k)。這裡,我們分別將a、j、q、k設為整數1、11、12、13。

在你面前有乙個裝置,只要往裡面放入1張牌,它就會根據牌的級別控制燈泡的亮滅。我們假設放入的撲克牌的級別為n(1~13的整數),

往這個裝置中依次放入13張紅桃,其中亮燈的有多少張牌呢?

答:8張。

p117:乘法法則

在一副撲克牌中,有紅桃、黑桃、方片、梅花四種花色。每個花色都有a、2、3、4、5、6、7、8、9、10、j、q、k這13個等級。那麼,一副撲克牌共有多少張?(這裡除去王牌)

答:52張。

p119:3個骰子

將3個寫有數字1到6的骰子並列放置,形成乙個3位數,共能形成多少個數字?

答:216個。

p120:32個燈泡

1個燈泡有亮和滅2種狀態。若將32個這樣的燈泡排成一排,則共有多少種亮滅模式。

答:4294967296種。

p121:3張牌的置換

如果將a、b、c這3張牌按照abc、acb、bac......等順序排列,那麼共有多少種排法?

答:6種。

p123:撲克牌的置換

將一副撲克牌裡的52張(不包括王牌)擺成一列,共有多少種擺法?

答:52!(52的階乘)

p125:從5張撲克牌中取出3張進行排列

你現在手上持有a、b、c、d、e共5張牌。要從這5張牌中取出3張牌進行排列。請問有多少種排法?

答:60種。

p134:藥品調劑

現假設要將顆粒狀的藥品調劑成一種新藥。藥品有a、b、c三種。新藥調劑規則如下。

這種情況下,新藥調劑的組合共有多少種?

答:4851種

p136:至少有一端是王牌

現在有5張撲克牌,其中王牌2張,j、q、k各1張。將5張牌排成一排,左端或右端至少有一端是王牌的排法有多少種?(不區分大小王牌)

答:42種。

植樹問題python 《程式設計師的數學》思考題(一)

程式設計師的數學 這本書,除了前兩章介紹數學的基本概念外,其它章節主要通過思考題的方式,在解答過程中給我們講解數學知識和思維方式。所以看完整本書後,通過對思考題的不斷訓練 可以使我們串起書中的知識點,鞏固知識。為了便於日後的複習,這裡整理了書中絕大多數的思考題,內容舒適,請放心食用。ps 答案只有結...

常見的邏輯思考題

對於乙個優秀的程式設計師來說,學習理解一些邏輯思考題有助於開闊自己的思維,在編碼過程中邏輯更加的嚴密完整。同時,還能增添日常枯燥生活的趣味,通過解答一道複雜的邏輯思考題,會獲得慢慢的成就感,那我們還有什麼理由不去學習和理解呢?有100個囚犯,將他們站成一排依次報數,報到奇數的那個人被槍斃,接著開始下...

有關記憶體的思考題

摘自 高質量c c 程式設計指南 四 有關記憶體的思考題 20 分 void getmemory char p p char malloc 100 void test void char str null getmemory str strcpy str,hello world printf str...