亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++基本算法思想之窮舉法

 更新時間:2013年10月14日 08:47:33   投稿:jingxian  
在使用窮舉法時,需要明確問題的答案的范圍,這樣才可以在指定的范圍內(nèi)搜索答案。指定范圍之后,就可以使用循環(huán)語句和條件語句逐步驗證候選答案的正確性,從而得到需要的正確答案

窮舉算法(Exhaustive Attack method)是最簡單的一種算法,其依賴于計算機(jī)的強(qiáng)大計算能力來窮盡每一種可能性,從而達(dá)到求解問題的目的。窮舉算法效率不高,但是適應(yīng)于一些沒有規(guī)律可循的場合。

窮舉算法基本思想
窮舉算法的基本思想就是從所有可能的情況中搜索正確的答案,其執(zhí)行步驟如下:

(1)對于一種可能的情況,計算其結(jié)果。

(2)判斷結(jié)果是否符合要求,如果不滿足則執(zhí)行第(1)步來搜索下一個可能的情況;如果符合要求,則表示尋找到一個正確答案。

在使用窮舉法時,需要明確問題的答案的范圍,這樣才可以在指定的范圍內(nèi)搜索答案。指定范圍之后,就可以使用循環(huán)語句和條件語句逐步驗證候選答案的正確性,從而得到需要的正確答案。

窮舉算法舉例
雞兔同籠問題最早記載于1500年前的《孫子兵法》,這是一個非常有名的問題。雞兔同籠的原文如下:

今有雞兔同籠,上有三十五頭,下有九十四足,問雞兔各幾只?

這個問題的大致意思是:在一個籠子里關(guān)著若干只雞和若干只兔,從上面數(shù)共有35個頭,從下面數(shù)共有94只腳。問籠中雞和兔的數(shù)量各是多少?

窮舉算法
這個問題需要計算雞的數(shù)量和兔的數(shù)量,我們通過分析可以知道雞的數(shù)量應(yīng)該在1~35之間。這樣我們可以使用窮舉法來逐個判斷是否符合,從而搜索答案。

采用窮舉法求解雞兔同籠問題的程序示例代碼如下:

復(fù)制代碼 代碼如下:

/*
輸入?yún)?shù)head是籠中頭的總數(shù),foot是籠中腳的總數(shù),chicken的總數(shù),rabbit是兔的總數(shù)
返回結(jié)果為0,表示沒有搜索到符合條件的結(jié)果;
返回結(jié)果為1,表示搜索到了符合條件的結(jié)果
*/
int qiongju(int head,int foot,int *chicken,int * rabbit)
{
 int re,i,j;
 re=0;
 for(i=0;i<=head,i++)  //進(jìn)行循環(huán)
 {
  j=head-i;
  if(i*2+j*4==foot) //進(jìn)行判斷
  {
   re=1;  //找到答案
   *chicken=i;
   *rabbit=j;
  }
 }
 return re;
}

窮舉算法求解雞兔同籠問題
完整的瓊劇算法求解雞兔同籠問題的程序代碼如下:
復(fù)制代碼 代碼如下:

#include<iostream>
using namespace std;
/*
輸入?yún)?shù)head是籠中頭的總數(shù),foot是籠中腳的總數(shù),chicken的總數(shù),rabbit是兔的總數(shù)
返回結(jié)果為0,表示沒有搜索到符合條件的結(jié)果;
返回結(jié)果為1,表示搜索到了符合條件的結(jié)果
*/
int qiongju(int head,int foot,int *chicken,int * rabbit)
{
 int re,i,j;
 re=0;
 for(i=0;i<=head;i++)  //進(jìn)行循環(huán)
 {
  j=head-i;
  if(i*2+j*4==foot)  //進(jìn)行判斷
  {
   re=1;    //找到答案
   *chicken=i;
   *rabbit=j;
  }
 }
 return re;
}
int main()
{
 int chicken,rabbit,head,foot;
 int re;
 cout<<"窮舉法求解雞兔同籠問題:"<<endl;
 cout<<"請輸入頭數(shù):";
 cin>>head;
 cout<<"請輸入腳數(shù):";
 cin>>foot;
 re=qiongju(head,foot,&chicken,&rabbit);
 if(re==1)
 {
  cout<<"雞有"<<chicken<<"只,兔有"<<rabbit<<"只。"<<endl;
 }
 else
 {
  cout<<"無法求解!"<<endl;
 }
 return 0;
}

程序中,首先由用戶輸入頭的總數(shù)和腳的總數(shù),然后調(diào)用窮舉法求解雞兔同籠問題的函數(shù),最后輸出結(jié)果。

執(zhí)行該程序,按照題目的要求輸入數(shù)據(jù),輸出結(jié)果。

相關(guān)文章

  • C++實現(xiàn)圖形界面時鐘表盤代碼

    C++實現(xiàn)圖形界面時鐘表盤代碼

    這篇文章主要介紹了C++實現(xiàn)圖形界面時鐘表盤代碼,涉及坐標(biāo)函數(shù)的應(yīng)用及圖形界面程序設(shè)計,需要的朋友可以參考下
    2014-10-10
  • C++ 數(shù)字的反轉(zhuǎn)實現(xiàn)實例

    C++ 數(shù)字的反轉(zhuǎn)實現(xiàn)實例

    這篇文章主要介紹了C++ 數(shù)字的反轉(zhuǎn)實現(xiàn)實例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++11 std::shared_ptr總結(jié)與使用示例代碼詳解

    C++11 std::shared_ptr總結(jié)與使用示例代碼詳解

    這篇文章主要介紹了C++11 std::shared_ptr總結(jié)與使用,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • C語言之整數(shù)劃分問題(遞歸法)實例代碼

    C語言之整數(shù)劃分問題(遞歸法)實例代碼

    這篇文章主要介紹了C語言之整數(shù)劃分問題(遞歸法)實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • C++開發(fā)之CRC校驗實例詳解

    C++開發(fā)之CRC校驗實例詳解

    這篇文章主要介紹了C++開發(fā)之CRC校驗實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 利用Matlab制作環(huán)形相冊效果詳解

    利用Matlab制作環(huán)形相冊效果詳解

    這篇文章主要為大家介紹了如何利用Matlab制作出環(huán)形相冊的效果,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • C++ 實現(xiàn)旋轉(zhuǎn)蛇錯覺的詳細(xì)代碼

    C++ 實現(xiàn)旋轉(zhuǎn)蛇錯覺的詳細(xì)代碼

    這篇文章主要介紹了C++ 實現(xiàn)旋轉(zhuǎn)蛇錯覺的詳細(xì)代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • C語言之如何求三次方根

    C語言之如何求三次方根

    這篇文章主要介紹了C語言之如何求三次方根問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • C++中queue容器的具體使用

    C++中queue容器的具體使用

    本文主要介紹了C++中queue容器的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 利用QT實現(xiàn)圖片瀏覽器的示例詳解

    利用QT實現(xiàn)圖片瀏覽器的示例詳解

    這篇文章主要和大家分享一個小案例:利用QT制作一個小的圖片瀏覽器,要求可以顯示jpg、jpeg、png、bmp,還可以從電腦上拖動圖到窗口并顯示出來,感興趣的可以了解一下
    2023-02-02

最新評論