《程式設計師的數學》這本書,除了前兩章介紹數學的基本概念外,其它章節主要通過思考題的方式,在解答過程中給我們講解數學知識和思維方式。所以看完整本書後,通過對思考題的不斷訓練 ,可以使我們串起書中的知識點,鞏固知識。為了便於日後的複習,這裡整理了書中絕大多數的思考題,內容舒適,請放心食用。
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 當前有一行錯誤時,可以按乙個退行符 以表示...