自頂而下,逐步求精

2021-08-11 15:23:52 字數 1318 閱讀 5807

首先,什麼是「自頂而下,逐步求精」呢?

自頂而下:

將複雜的大問題分解為相對簡單的小問題,找出每個問題的關鍵、重點所在,然後用精確的思維定性、定量地去描述問題。其核心本質是」分解」。

對要完成的任務進行分解,先對最高層次中的問題進行定義、設計、程式設計和測試,而將其中未解決的問題作為乙個子任務放到下一層次中去解決。這樣逐層、逐個地進行定義、設計、程式設計和測試,直到所有層次上的問題均由實用程式來解決,就能設計出具有層次結構的程式。 按自頂向下的方法設計時,設計師首先對所設計的系統要有乙個全面的理解.然後從頂層開始,連續地逐層向下分解,起到系統的所有模組都小到便於掌握為止 。

逐步求精:

將現實問題經過幾次抽象(細化)處理,最後到求解域中只是一些簡單的演算法描述和演算法實現問題。即將系統功能按層次進行分解,每一層不斷將功能細化,到最後一層都是功能單

一、簡單易實現的模組。求解過程可以劃分為若干個階段,在不同階段採用不同的工具來描述問題。在每個階段有不同的規則和標準,產生出不同階段的文件資料。

接下來用乙個例項來具體了解「自頂而下,逐步求精」的使用。

哥德**猜想是數論中的乙個著名難題, 是由法國數學愛好者克里斯蒂安·哥德**於2023年在給著名數學家尤拉的一封信中提出的。二百多年來, 雖有無數數學家為其嘔心瀝血、絞盡腦汁, 卻始終無人能夠證明或者證偽這個猜想 。

「哥德**猜想」可以表述為:任何乙個大於等於4的偶數均可以表示為兩個素數之和。

現在我們用「自頂而下,逐步求精」來嘗試求解。

第一步 提出問題: 驗證哥德**猜想

第二步 設一上限數a,驗證從4到a的所有偶數是否能被分解為兩個素數之和。

1. 定義乙個變數x,初值為4。

2. 每次令其加2,並驗證x能否被分解為兩個素數之和,直到x不小於a為止。

第三步 如何驗證x是否能被分解為兩個素數之和。

1. 從b=2開始;

2. 判別x—b是否仍為素數:

3. 若是,輸出該偶數的分解式。

4. 否則,換更大的素數,再繼續執行2.。如此迴圈,直到用於檢測的素數大x/2且x 與其之差仍不是素數,則輸出「哥德**猜想」不成立。

第四步 查詢下乙個素數。

(1)當前素數b加1

(2)判別b是否是素數;

(3)若是素數,返回p;

(4)否則,b加1,繼續執行( 2)。

經過四步分解精化,將「驗證哥德**猜想」這個命題已經分解為計算機可以求解的數學模型了。

模組化數學模型,化繁為簡,這就是「自頂而下,逐步求精」的一種使用。

自頂而下,逐步求精

自頂向下設計是一種分析問題的方法,簡單的說,自頂向下就是將乙個大問題先分解為若干個小問題,在將每個小問題繼續分解,直到不能再分解或者可以輕易實現為止。自頂向下,將問題不斷分解為小的模組。逐步求精,可以理解為將各個小模組實現和優化的過程。應用例項 邀請朋友來家中吃飯 要同時確定吃飯人員和做飯選單。然後...

自頂向下,逐步求精

簡單來說,自頂而下,逐步求精 這是一種分解複雜任務的方法。學會分解任務,超級大分為大的 中的 小的 超小的,直到能用很直接的方法解決。是程式設計裡面很經典的方法。驗證哥德 猜想 任何乙個大於等於4的偶數均可以表示為兩個素數之和 第一步 設一上限數m,驗證從4到m的所有偶數是否能被 分解為兩個素數之和...

自頂向下,逐步求精

由於軟體導論課程的安排,我們已經學到了演算法結構的問題,所以今天我給大家介紹一下top down design。高亮宗旨!重點敲黑板 畢業聚餐點菜 很明顯 點菜就是你的big project,我們要將其分解成各個小任務從而求得實現。1.了解班級人數 2.了解少數名族同學的口味禁忌 3.了解各位同學的...