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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

重新計算mid的值否則

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

重新計算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;流程圖應用舉例算法探究程序實現(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("請輸入欲查找的值:\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);}應用舉例算法探究程序練習知識內化32.用二分法在1到2的范圍內求方程2^x+3*x-7=0的根。(精確度為1e-5)算法探究程序練習知識內化x0123456f(x)-6-2310214075函數(shù)f(x)=2^x+3x-7對應的函數(shù)值表:兩個問題:(1)你能找到這個函數(shù)的零點所在的某個區(qū)間嗎?(2)能否找到什么方法一步一步縮小這個區(qū)間,使區(qū)間端點越來越逼近函數(shù)的零點,進而求得方程的根(函數(shù)f(x)零點)的近似值?2345-1-212yx01-3-4-5-6-7程序練習知識內化11.21.41.8-1-20.51yx0-3-4-5-6-71.621.5程序練習知識內化1-1-20.51yx0-3-4-5-6-721.51.25程序練習知識內化11.375-1-20.51yx0-3-4-5-6-721.51.25程序練習知識內化11.375-1-20.51yx0-3-4-5-6-721.51.4375所以方程2^x+3*x-7=0的根近似解可以取1.433189程序練習知識內化程序實現(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);}程序練習知識內化歸納小結課堂延伸4歸納小結課堂延伸

1.二分法的實質:3.二分法的應用:通過縮小范圍來靠近目標。2.二分法的方法:不斷取中點,達到縮小范圍的目的。辨真?zhèn)巍⒄覕?shù)據(jù)、解方程、猜價格、修電路等,做到了在較的時間內用最小的精力去解決問題。

修電路、水管、氣管

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

溫馨提示

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

評論

0/150

提交評論