tft每日頭條

 > 生活

 > 雞兔同籠問題解法五步法

雞兔同籠問題解法五步法

生活 更新时间:2024-08-31 06:21:26

相信不少人都聽說過著名的“雞兔同籠”問題,對無憂無慮的小學生來說,心理陰影不至于,但絕對是個巨大的挑戰。問題是這樣的:在一個籠子裡,有雞和兔子兩種動物,兩種動物腦袋共35個,腳一共94隻,那麼雞和兔子分别各多少隻呢?

雞兔同籠問題解法五步法(雞兔同籠問題簡單易懂的4種解法)1

當然啦,題目中的雞和兔子都是正常的,沒有殘疾,也沒有三頭六臂。基于此,老老實實的考慮怎麼才能算出答案呢?

《孫子算經》的解法

事實上,這個問題最早出現于《孫子算經》,并給出了一個解法:

  • 所有動物的腳數除以2,得47;每隻雞有一對腳,兔子有兩對腳。
  • 假設籠子裡全部是雞的話,腦袋35個,腳也應該是35對,而事實上有47對腳。
  • 如果把一隻雞換成一隻兔子的話,47-35=12,說明需要12隻雞被替換為兔子,于是得到兔子的數目。
  • 雞的數目自然就是35-12=23隻了。

對于上面的解法,理解起來也并不那麼輕松,尤其對于小學生來說。我估計很多人在看完這個答案的時候,心裡暗暗的佩服:這個解法真“孫子”!

雞兔同籠問題解法五步法(雞兔同籠問題簡單易懂的4種解法)2

有趣的算法

如果說一聲令下,讓每隻雞都金雞獨立,每隻兔子也雙腳站立賣萌。此時着地的腳一共是47隻,而腦袋是35個;其中一隻雞頭對應一個腦袋,一個兔頭對應兩隻腳;那麼腳的數量減去頭的數量就是兔子的個數啦,兔子數目知道了,雞的數量自然也就知道了;因此兔子12隻,雞23隻。

有人質疑一聲令下,說假如能讓雞單腳着地的話,為什麼不直接讓雞報數?好啦,做人要厚道,這個問題就留給我們敬愛的、偉大的生物學家吧!事情不能做絕,也得給别人一碗飯吃。

雞兔同籠問題解法五步法(雞兔同籠問題簡單易懂的4種解法)3

然而,無論是《孫子算經》的算法,還是能和小動物溝通,都是結合了這個具體的背景,給出了具體的解法。假如說籠子裡放幾隻蜈蚣的話,還像上面的算法那麼算的話,估計誰算誰罵街。數學的使命,就是抛開具體事物,隻研究其數量關系,找到通用的、一般的算法。

機械地嘗試

如果我把題目改一下:在一個籠子裡,關着雞和兔子,兩種動物的的腦袋一共是2個,腳一共是6個,問雞和兔子分别有幾隻?

我相信很多人一瞬間,就得到答案了。那麼如果改成一共3個頭,8隻腳呢?應該也會有比較多的小學生能得到答案。而這個思維過程其實很簡單:嘗試!如果籠子裡小動物的數量少,試一兩次就得到答案啦;如果數量大了,懶惰的我們就忽略了這種算法。

雞兔同籠問題解法五步法(雞兔同籠問題簡單易懂的4種解法)4

仍然考慮原問題中的籠子,通過嘗試的方法,毫無疑問是要嘗試更多次的:

  • 假如是1隻雞,34隻兔子,那麼腳一共是1×2 34×4=138>94,不對;
  • 假如是2隻雞,33隻兔子,那麼腳一共是2×2 33×4=136>94,不對;
  • 假如是3隻雞,32隻兔子,那麼腳一共是3×2 32×4=134>94,不對;
  • ……

這樣一直試到23隻雞,12隻兔子,問題得到解決啦;當然,如果從假設1隻兔子開始,嘗試的次數要少的多。如果說,在上面嘗試的過程中,敏銳法察覺到腳的數量是在遞減,你可能就會去跳躍的嘗試,比如嘗試完5隻雞,直接嘗試10隻雞……,如此會更快的獲得答案。

有些人會不屑,這種算法也叫算法麼,我都沒抖抖機靈。沒錯兒,這種算法比上面的兩種算法更具一般性,無論籠子裡關的是什麼小動物都可以這樣計算;當然了,這種方法很機械,而且随着籠子裡動物數量增多,計算量也在迅速增大。

如果原問題中的籠子有67個,把這67個籠子中的雞和兔子都放到一個大籠子裡,就得到:雞和兔子的腦袋一共2345個,腳6298隻,那麼雞和兔子分别有多少隻呢?

雞兔同籠問題解法五步法(雞兔同籠問題簡單易懂的4種解法)5

此時“嘗試”的算法依然奏效,但是計算量就明顯增加。面對機械的計算,有沒有什麼好辦法呢?有!善良實在的計算機就登場了,它可以毫無怨言的按照“嘗試”的算法,快速計算出雞和兔子的數量。當然這個機械式的“嘗試”算法可以做改進,這是另外一個話題。

方程

問題到此還遠沒結束呢。再如果把籠子換成農場,農場裡除了雞和兔子,還有鴨子、大鵝、肥豬、羔羊……,同樣考慮求每種牲畜的數量問題,即便是動物總數量不算大,問題顯然是更複雜了。那麼,有沒有更一般的方法,能解決這類問題。這就是方程或方程組的意義啦!

雞兔同籠問題解法五步法(雞兔同籠問題簡單易懂的4種解法)6

對于雞兔同籠問題,轉化為二元一次方程組,問題轉化為求解方程組的問題,而不需要再考慮籠子裡是雞還是狗。

有了方程的解法,我們自然不會再采用上面那些具體的、燒腦的算法,包括機械的嘗試算法。即使是計算機,也不該放着更高效的算法不用呀!當然計算量很大、機械的原始算法,可能不适合真正用于實際,但其邏輯的合理性,用于邏輯論證是毫無問題的!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved