計(jì)算機(jī)問(wèn)題求解

程序開(kāi)發(fā)過(guò)程


  • 分析階段:程序開(kāi)發(fā)的第一步是弄清問(wèn)題累提。在軟件開(kāi)發(fā)領(lǐng)域皱碘,這一工作階段通常被稱(chēng)為需求分析财剖。
  • 設(shè)計(jì)階段:?jiǎn)栴}的嚴(yán)格描述仍然是描述性的幌羞,而計(jì)算機(jī)求解是一個(gè)操作過(guò)程。在真正編程之前竟稳,需要有一個(gè)能解決這個(gè)問(wèn)題的計(jì)算過(guò)程模型属桦。這種模型包括兩個(gè)方面,一方面需要表示計(jì)算中處理的數(shù)據(jù)他爸,另一方面必須有求解問(wèn)題的計(jì)算方法聂宾,即通常所說(shuō)的算法
  • 編碼階段:有了解決問(wèn)題的抽象計(jì)算模型诊笤,下一步工作就是用某種適當(dāng)?shù)木幊陶Z(yǔ)言實(shí)現(xiàn)這個(gè)模型系谐,做出一個(gè)可能由計(jì)算機(jī)執(zhí)行的實(shí)際計(jì)算模型,也就是一個(gè)程序
  • 檢查測(cè)試階段:復(fù)雜的程序通常不可能一蹴而就纪他,寫(xiě)出的代碼中可能有各種錯(cuò)誤鄙煤,最簡(jiǎn)單的是語(yǔ)法類(lèi)型錯(cuò)誤。經(jīng)過(guò)反復(fù)檢查修改茶袒,最后得到一個(gè)可以運(yùn)行的程序梯刚。
  • 測(cè)試/調(diào)試階段:程序可以運(yùn)行并不代表它就是所需的那個(gè)程序,還需要通過(guò)嘗試性的運(yùn)行確定其功能是否滿足需要薪寓,這一工作階段稱(chēng)為測(cè)試調(diào)試亡资。測(cè)試/調(diào)試過(guò)程中可能會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤邏輯錯(cuò)誤,需要修正向叉,直至得到令人滿意的程序锥腻。
  • 以上即一個(gè)從問(wèn)題出發(fā),最終得到可用程序的開(kāi)發(fā)過(guò)程母谎。
  • 相對(duì)而言瘦黑,設(shè)計(jì)階段的工作更困難一些。編碼階段的工作相對(duì)容易一些销睁。

一個(gè)簡(jiǎn)單例子


雖然一個(gè)問(wèn)題的說(shuō)明性描述與其操作性描述表達(dá)的是同一個(gè)問(wèn)題供璧,但它們卻非常不同。前者說(shuō)明了需要解決的問(wèn)題是什么冻记,針對(duì)什么樣的問(wèn)題睡毒,期望什么樣的解;而后者說(shuō)明通過(guò)怎樣的操作過(guò)程可以得到所要的解冗栗。

如:求出任一個(gè)非負(fù)實(shí)數(shù)的平方根(牛頓迭代法)演顾。

算法描述


  1. 對(duì)給定正實(shí)數(shù) x 和允許誤差 e ,令變量 y 取任意正實(shí)數(shù)值隅居,如令 y=x 钠至;
  2. 如果 y*yx 足夠接近,即 |y*y-x| < e 胎源,計(jì)算結(jié)束并把 y 作為結(jié)果棉钧;
  3. z=(y+x/y)/2 ;
  4. z 作為 y 的新值涕蚤,回到步驟 1 宪卿。

Python 程序?qū)崿F(xiàn)


def sqrt(x):
    y = 1.0
    while abs(y * y - x) > 1e-6:
        y = (y + x/y) / 2
    return y

其中,變量 y 初值為 1.0万栅,允許誤差為 10-6佑钾。通過(guò)各種數(shù)值測(cè)試,可以看到這個(gè)函數(shù)確實(shí)能完成所需要的工作烦粒。

總結(jié)


在上述例子中休溶,最不清晰的是從平方根的定義到求平方根的算法。然而 ......

算法設(shè)計(jì)是一種創(chuàng)造性工作,依賴(lài)于對(duì)問(wèn)題的認(rèn)識(shí)和相關(guān)領(lǐng)域的知識(shí)兽掰,沒(méi)有放之四海而皆準(zhǔn)的路徑可循芭碍。

摘自北大裘宗燕老師《數(shù)據(jù)結(jié)構(gòu)與算法》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市禾进,隨后出現(xiàn)的幾起案子豁跑,更是在濱河造成了極大的恐慌,老刑警劉巖泻云,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件艇拍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宠纯,警方通過(guò)查閱死者的電腦和手機(jī)卸夕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)婆瓜,“玉大人快集,你說(shuō)我怎么就攤上這事×祝” “怎么了个初?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)猴蹂。 經(jīng)常有香客問(wèn)我院溺,道長(zhǎng),這世上最難降的妖魔是什么磅轻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任珍逸,我火速辦了婚禮,結(jié)果婚禮上聋溜,老公的妹妹穿的比我還像新娘谆膳。我一直安慰自己,他們只是感情好撮躁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布漱病。 她就那樣靜靜地躺著,像睡著了一般把曼。 火紅的嫁衣襯著肌膚如雪缨称。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天祝迂,我揣著相機(jī)與錄音,去河邊找鬼器净。 笑死型雳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纠俭,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼沿量,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了冤荆?” 一聲冷哼從身側(cè)響起朴则,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钓简,沒(méi)想到半個(gè)月后乌妒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡外邓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年撤蚊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片损话。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侦啸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丧枪,到底是詐尸還是另有隱情光涂,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布拧烦,位于F島的核電站忘闻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏屎篱。R本人自食惡果不足惜服赎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望交播。 院中可真熱鬧重虑,春花似錦、人聲如沸秦士。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)隧土。三九已至提针,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間曹傀,已是汗流浹背辐脖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留皆愉,地道東北人嗜价。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓艇抠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親久锥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子家淤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容