韓信點兵問題通解

2021-08-20 12:13:04 字數 656 閱讀 9827

韓信點兵問題通解

吳旻泰巖網路工作室

設士兵總數為最少為s,有s除以3得z餘a,s除以5得y餘b,s除以7得x餘c。即

s=7x+c=5y+b=3z+a

x,y,z,a,b,c均為》=0的整數

易得,7x+c-b=5y

7x+c-a=3z

整理,x+(2x+c-b)/5=y

2x+(x+c-a)/3=z

移項,並記m=y-x和n=z-2x

(2x+c-b)/5=y-x=m

(x+c-a)/3=z-2x=n 推得,x=3n+a-c 並將x代入上式,有

6n+2a-b-c=5m,整理並記為p=(m-n)

n+2a-b-c=5(m-n)=5p, p為整數

n=b+c-2a+5p, n>0且n<5, a<3, b<5, c<7, 且a,b,c>=0

一般設p=0,方便求出最小的n,

最小的n=b+c-2a

若n<0,則不停+5,直到n>0且n<5;如果n>5,則不停-5,直到n>0且n<5。

有,x=3n+a-c

s=7x+c

若p=0,則

x=3(b+c-2a)+a-c=3b+2c-5a

s=21b+15c-35a

s+3*5*7*n,是此問題的通解,n為》=0的整數

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

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

韓信點兵演算法

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

Problem A 韓信點兵

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