C語言-二分法及其應(yīng)用舉例_第1頁
C語言-二分法及其應(yīng)用舉例_第2頁
C語言-二分法及其應(yīng)用舉例_第3頁
C語言-二分法及其應(yīng)用舉例_第4頁
C語言-二分法及其應(yīng)用舉例_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《C語言程序設(shè)計(jì)》二分法及其應(yīng)用舉例夏銀2018.11.14情境導(dǎo)課概念生成1情境導(dǎo)課概念生成一位商人有8枚金幣,其中有1枚假金幣(質(zhì)量略輕),你能用天平(不用砝碼)將假金幣找出來嗎?情境導(dǎo)課概念生成需要稱幾次,能找出假金幣?八枚金幣中有一枚略輕情境導(dǎo)課概念生成情境導(dǎo)課概念生成我在這里情境導(dǎo)課概念生成情境導(dǎo)課概念生成情境導(dǎo)課概念生成我在這里情境導(dǎo)課概念生成情境導(dǎo)課概念生成哦,找到了?。∏榫硨?dǎo)課概念生成二分法的定義對(duì)處理對(duì)象(數(shù)據(jù)或者具體的物)不斷取中間點(diǎn),將范圍一分為二,再經(jīng)比較,按需要留下其中一個(gè)小范圍,如此往復(fù),逐步逼近目標(biāo)的方法叫二分法,也叫對(duì)分法。情境導(dǎo)課概念生成應(yīng)用舉例算法探究2應(yīng)用舉例算法探究1.采用二分法在給定的有序數(shù)組{0,2,3,5,6,8,9,10,11,15}中查找用戶輸入的值,并顯示查找結(jié)果。請(qǐng)?zhí)顚戇m當(dāng)?shù)姆?hào)或語句,使程序?qū)崿F(xiàn)其功能。如輸入11輸出為:找到位置為8如輸入2輸出為:找到位置為1如輸入4輸出為:4未找到0235689101511lowhighmidK=110123456789算法探究

數(shù)組a[10]應(yīng)用舉例算法探究算法探究

035689101115數(shù)組a[10]2lowhighmidK=20123456789應(yīng)用舉例算法探究算法探究

0235689101115數(shù)組a[10]lowhighmidK=40123456789應(yīng)用舉例算法探究先假設(shè)最小的數(shù)組下標(biāo)low的值是0最大的數(shù)組下標(biāo)high值為9取中點(diǎn),得中間的數(shù)組下標(biāo)mid值為(0+9)/2當(dāng)low<=high時(shí)比較a[mid]和要找的值k是否相等,如果相等,即輸出下標(biāo)、做標(biāo)記、程序結(jié)束如果a[mid]>k

將最大數(shù)組下標(biāo)high的值改為mid-1

重新計(jì)算mid的值否則

將最小數(shù)組下標(biāo)low的值改為mid+1

重新計(jì)算mid的值語言描述low=0;high=9;mid=(low+high)/2;while(low<=high){if(a[mid]==k){…;find=1;break;}if(a[mid]>k)high=mid-1;else

low=mid+1;mid=(low+high)/2;}

C語句low=0;high=9;mid=(low+high)/2low<=highif(a[mid]==k){…;find=1;break;}if(a[mid]>k)high=mid-1;elselow=mid+1;mid=(low+high)/2;流程圖應(yīng)用舉例算法探究程序?qū)崿F(xiàn)

main(){inta[10]={0,1,2,3,4,5,6,7,8,9};intlow=0,high=9,mid,k,find=0;mid=(low+high)/2;printf("請(qǐng)輸入欲查找的值:\n");scanf("%d",&k);while(low<=high){if(a[mid]==k){printf("找到位置為:%d\n",mid+1);find=1;break;}if(a[mid]>k)high=mid-1;elselow=mid+1;mid=(low+high)/2;}if(find==0)printf("%d未找到\n",k);}應(yīng)用舉例算法探究程序練習(xí)知識(shí)內(nèi)化32.用二分法在1到2的范圍內(nèi)求方程2^x+3*x-7=0的根。(精確度為1e-5)算法探究程序練習(xí)知識(shí)內(nèi)化x0123456f(x)-6-2310214075函數(shù)f(x)=2^x+3x-7對(duì)應(yīng)的函數(shù)值表:兩個(gè)問題:(1)你能找到這個(gè)函數(shù)的零點(diǎn)所在的某個(gè)區(qū)間嗎?(2)能否找到什么方法一步一步縮小這個(gè)區(qū)間,使區(qū)間端點(diǎn)越來越逼近函數(shù)的零點(diǎn),進(jìn)而求得方程的根(函數(shù)f(x)零點(diǎn))的近似值?2345-1-212yx01-3-4-5-6-7程序練習(xí)知識(shí)內(nèi)化11.21.41.8-1-20.51yx0-3-4-5-6-71.621.5程序練習(xí)知識(shí)內(nèi)化1-1-20.51yx0-3-4-5-6-721.51.25程序練習(xí)知識(shí)內(nèi)化11.375-1-20.51yx0-3-4-5-6-721.51.25程序練習(xí)知識(shí)內(nèi)化11.375-1-20.51yx0-3-4-5-6-721.51.4375所以方程2^x+3*x-7=0的根近似解可以取1.433189程序練習(xí)知識(shí)內(nèi)化程序?qū)崿F(xiàn)#include<stdio.h>#include<math.h>main(){floatx0,x1,x2,fx0,fx1,fx2;x1=1.0;x2=2.0;fx1=pow(2,x1)+3*x1-7;fx2=pow(2,x2)+3*x2-7;x0=(x1+x2)/2;fx0=pow(2,x0)+3*x0-7;while(fabs(fx0)>=1e-5){if(fx0*fx1>0)x1=x0;elsex2=x0;x0=(x1+x2)/2;fx0=pow(2,x0)+3*x0-7;}printf("therootis%6.2f\n",x0);}程序練習(xí)知識(shí)內(nèi)化歸納小結(jié)課堂延伸4歸納小結(jié)課堂延伸

1.二分法的實(shí)質(zhì):3.二分法的應(yīng)用:通過縮小范圍來靠近目標(biāo)。2.二分法的方法:不斷取中點(diǎn),達(dá)到縮小范圍的目的。辨真?zhèn)?、找?shù)據(jù)、解方程、猜價(jià)格、修電路等,做到了在較的時(shí)間內(nèi)用最小的精力去解決問題。

修電路、水管、氣管

某個(gè)雷電交加的夜晚,醫(yī)院

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論