窮舉法之韓信點兵

2021-07-11 05:39:53 字數 546 閱讀 5699

問題描述

在中國數學史上,廣泛流傳著乙個「韓信點兵」的故事。韓信是漢高祖劉邦手下的大將,他英勇善戰,智謀超群,為漢朝建立了卓絕的功勞。據說韓信的數學水平也非常高超,他在點兵的時候,為了知道有多少個兵,同時又能保住軍事機密,便讓士兵排隊報數:

按從1至5報數,記下最末乙個士兵報的數為1;

再按從1至6報數,記下最末乙個士兵報的數為5;

再按1至7報數,記下最末乙個報的數為4;

最後按1至11報數,最末乙個士兵報的數為10。

你知道韓信至少有多少兵?

演算法分析

應用窮舉可得到至少的兵數。x從1開始遞增1取值窮舉當然可以,但不必要。事實上窮舉次數可聯絡問題的具體實際大大縮減。

程式**

#include 

using

namespace

std;

int main()

}return

0;}

韓信點兵python演算法 韓信點兵演算法

秦朝末年,楚漢相爭。一次,韓信將1500名將士與楚王大將李鋒交戰。苦戰一場,楚軍不敵,敗退回營,漢軍也死傷四五百人,於是韓信整頓兵馬也返回大本營。當行至一山坡,忽有後軍來報,說有楚軍騎兵追來。只見遠方塵土飛揚,殺聲震天。漢軍本來已十分疲憊,這時隊伍大譁。韓信兵馬到坡頂,見來敵不足五百騎,便急速點兵迎...

韓信點兵演算法

孫子算經 中給出這類問題的解法 三三數之剩二,則置一百四十 五五數之剩三,置六十三 七七數之剩二,置三十 並之得二百三十三,以二百一十減之,即得。凡三三數之剩一,則置七十 五五數之剩一,則置二十一 七七數之剩一,則置十五,一百六以上,以一百五減之,即得。用現代語言說明這個解法就是 首先找出能被5與7...

Problem A 韓信點兵

劉邦問韓信 你覺得我可以帶兵多少?韓信 最多十萬。劉邦不解的問 那你呢?韓信自豪地說 越多越好,多多益善嘛!劉邦半開玩笑半認真的說 那我不是打不過你?韓信說 不,主公是駕馭將軍的人才,不是駕馭士兵的,而將士們是專門訓練士兵的.某此戰役,韓信就帶15000名士兵上戰場廝殺,不幸,戰死些許士兵,但具體數...