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

2021-10-13 10:49:15 字數 4332 閱讀 5162

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

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:存錢罐的錢

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

第 1 天,往存錢罐裡投入 1 元。存錢罐中總金額為 1 元。

第 2 天,往存錢罐裡投入 2 元。存錢罐中總金額為 1 + 2 = 3 元。

第 3 天,往存錢罐裡投入 3 元。存錢罐中總金額為 1 + 2 + 3 = 6 元。

第 4 天,往存錢罐裡投入 4 元。存錢罐中總金額為 1 + 2 + 3 + 4 = 10 元。

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

答: 5050元。

p99:黑白棋子的顏色

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

使用數學歸納法可以「證明」投擲的黑白棋的顏色一定相同。然而現實中這卻是不可能的。

那麼,請找出下述「證明」中的錯誤之處。

假設n為1以上的整數,用數學歸納法證明以下斷言t(n)對於1以上的所有整數n都成立。

斷言t(n):投擲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的整數),

若n是2的倍數,則亮燈。

若n是3的倍數,也亮燈。

若n既不是2的倍數,也不是3的倍數,則滅燈。

往這個裝置中依次放入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三種。新藥調劑規則如下。

從a、b、c這3種藥品中,共取100粒進行調劑。

調劑時,a、b、c這3種藥品每種至少有1粒。

不考慮藥品調劑的順序。

同種藥品每粒都相同。

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

答: 4851種

p136:至少有一端是王牌

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

答: 42種。

程式設計師學python 程式設計師學Python

章python基礎1 1.1表示式和計算1 1.1.1數值計算1 1.1.2標準函式和數學函式包5 1.1.3字串7 1.2變數和賦值10 1.2.1名字 變數和賦值10 1.2.2簡單指令碼程式12 章python基礎1 1.1表示式和計算1 1.1.1數值計算1 1.1.2標準函式和數學函式包5...

程式設計師的大問題

有一位朋友列出來乙個公式 工作經驗 工作年限 各方面能力 對於這位朋友的 觀點,我極為贊同。對於現實找工作的程式設計師來說,這卻是乙個很讓人不能理解的問題 很多公司招聘一些開發人員的時候,會很正常的要求一點,工作年限3年,4年甚至5年以上的條件。學歷也一般會直接 要求出來,本科,研究生等等。在這些招...

程式設計師輸入問題

2554 程式設計師輸入問題 時間限制 1 sec 記憶體限制 128 mb 提交 665 解決 132 提交 題解 狀態 討論版 題目描述 程式設計師輸入程式出現差錯時,可以採取以下補救措施 1 按錯乙個鍵時,可以補按乙個退格符 以表示前乙個字元無效 2 當前有一行錯誤時,可以按乙個退行符 以表示...