A. 1、 用計算機解決某個實際問題的一般過程包括哪幾個階段
用電腦解決實際問題的一般過程,包括三個階段:
第一階段:分析問題。
用電腦來解決問題時,首先電腦要對問題進行定性、定量的分析,然後才能設計演算法。定性分析法是對問題進行「質」的方面的分析,確定問題的性質,定量分析法,是對要解決的問題的數量特徵、數量關系與數量變化進行分析的方法。
第二階段:設計演算法。
演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。
第三階段:編寫程序。
設計完演算法後,就要使用某種程序設計語言編寫程序代碼,並最終得到相應結果。編程的語言包括匯編語言、機器語言和高級語言。高級語言中最簡單、最常用的是Visual
Basic語言和Pascal語言。
B. 解決問題的步驟 演算法
1、分析問題。
用電腦來解決問題時,首先電腦要對問題進行定性、定量的分析,然後才能設計演算法。定性分析法是對問題進行「質」的方面的分析,確定問題的性質,定量分析法,是對要解決的問題的數量特徵、數量關系與數量變化進行分析的方法。
2、設計演算法。
演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。
不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。
3、編寫程序。
設計完演算法後,就要使用某種程序設計語言編寫程序代碼,並最終得到相應結果。編程的語言包括匯編語言、機器語言和高級語言。高級語言中最簡單、最常用的是Visual Basic語言和Pascal語言。
C. 演算法就是解決生活難題的方法而不能用算計
計算方法又稱「數值分析「.是為各種數學問題的數值解答研究提供最有效的演算法,而演算法不僅僅是數學問題,它是解決一切問題的方法和步驟.演算法的內容比計算方法涵蓋的內容更為廣泛所以C是錯誤的.
故選C.
D. 計算機問題求解過程一般包括
1、分析問題。
用電腦來解決問題時,首先電腦要對問題進行定性、定量的分析,然後才能設計演算法。定性分析法是對問題進行「質」的方面的分析,確定問題的性質,定量分析法,是對要解決的問題的數量特徵、數量關系與數量變化進行分析的方法。
2、設計演算法。
演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。
不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。
3、編寫程序。
設計完演算法後,就要使用某種程序設計語言編寫程序代碼,並最終得到相應結果。編程的語言包括匯編語言、機器語言和高級語言。高級語言中最簡單、最常用的是Visual Basic語言和Pascal語言。
(4)不屬於用演算法解決問題的過程擴展閱讀:
人類解決問題:靠知識、見識、常識、經驗、直覺、甚至賭博;
計算機解決問題:靠知識庫、推理、推演、演繹、計算和預測以及概率分析。
人類會受外界因素和個人情感的干擾,導致同樣的條件不同的結果;計算機則不受干擾,滿足某個或某些條件,就會執行預先設定的命令。
利用計算機程序解決問題的基本過程:
了解利用計算機解決問題的基本過程。
了解問題分析與演算法設計之間的關系。
了解演算法的基本特徵。
能用自然語言、流程圖或偽代碼描述演算法。
了解程序設計語言產生與發展過程。
E. 高中數學演算法,判斷下列不是解決問題的演算法的是()
答案是B,你現在應該學過編程了吧?就是Visual
Basic。。。演算法是可以畫出流程圖的,就是第一步做什麼,第二步做什麼,最後找出問題的答案,然後輸出結果。A符合條件。但是B呢,只是一個真命題,既畫不出流程圖,沒有學過方程的人也不知如何去解出兩個實根,就不是一個解決問題的演算法。
F. 演算法過程是什麼
G. 演算法設計的步驟不包含什麼
一、學習內容
1. 演算法設計中五大常用演算法
1) 分治法
設計思想:將一個難以直接解決的大問題分解成規模較小的相同問題,以便分而治之。
實際的應用:快速排序、歸並排序
分治法在每一層遞歸上的基本步驟:
①分解:將原問題分解為若干個規模較小、相互獨立、與原問題形式相同的子問題。
②解決:若子問題規模較小就直接解決,不然就遞歸解決各個子問題
③合並:將各個子問題的解合並為原問題的解
以快速排序為例理解分治法:
快速排序代碼:
public static void quickSort(int a[],int low,int high){
if(low < high){
int pivotpos = partition(a,low,high);
quickSort(a,low,pivotpos-1);
quickSort(a,pivotpos+1,high);
}
}
public static int partition(int a[],int low,int high){
int pivot = a[low];
while (low < high){
while (low < high && a[high] >= pivot){
--high;
}
a[low] = a[high];
while (low < high && a[low] <= pivot){
++low;
}
a[high] = a[low];
}
a[low] = pivot;
return low;
}
①分解:選取基準元素,將左右兩側進行劃分
②解決:分別將兩個子序列進行快速排序
③合並:將排好的子序列合並
以兩路合並排序為例理解分治法:(分治法中的合並在歸並排序中體現得更加清楚)
歸並排序代碼:
public static void merge(int a[],int low,int mid,int high){
int[] temp = new int[high-low+1];
int i = low;
int j = mid+1;
int k = 0;
while (i <= mid && j <= high){
if(a[i] < a[j]){
temp[k++] = a[i++];
}else {
temp[k++] = a[j++];
}
}
//把左邊剩下的移到數組中
while (i <= mid){
temp[k++] = a[i++];
}
//把右邊剩下的移到數組中
while (j <= high){
temp[k++] = a[j++];
}
//更新原數組
for (int x = 0;x <temp.length;x++){
a[x+low] = temp[x];
}
}
public static int[] mergeSort(int a[],int low,int high){
int mid = (low+high)/2;
if(low < high){
mergeSort(a,low,mid);
mergeSort(a,mid+1,high);
//左右合並
merge(a,low,mid,high);
}
return a;
}
①分解:將一個數組一刀切兩半,遞歸切,直到切成單個元素
②解決:單個元素合並成有序的小數組
③合並:小數組合並成大數組,最終合並完成
2) 動態規劃法
設計思想:最優化原理,即一個過程的最優決策具有這樣的性質:即無論其初始狀態和初始決策如何,其今後諸策略對以第一個決策所形成的狀態作為初始狀態的過程而言,必須構成最優策略
動態規劃法所要滿足的條件:
①問題中的狀態滿足最優化原理
②問題中的狀態必須滿足無後效性,無後效性指的是下一時刻的狀態只與當前的狀態 有關而與當前狀態的之前狀態無關。
動態規劃三要素:
①問題的階段
②每個階段的狀態
③從前一個階段轉換到後一個階段的遞推關系
實際的應用:0/1背包問題 最長公共子串問題
以最長公共子串問題為例理解動態規劃法:
定義dp[i][j]表示以A中第i個字元結尾的子串和B中第j個字元結尾的子串的最大公共子串,dp 的大小也為 (n + 1) x (m + 1) ,這多出來的一行和一列是第 0 行和第 0 列,初始化為 0,表示空字元串和另一字元串的子串的最長公共子串。
當我們要求dp[i][j]時,我們要先判斷A的第i個元素B的第j個元素是否相同即判斷A[i - 1]和 B[j -1]是否相同,如果相同它就是dp[i - 1][j- 1] + 1,相當於在兩個字元串都去掉一個字元時的最長公共子串再加 1;否則最長公共子串取0。所以整個問題的初始狀態為:
dp[i][0]=0,dp[0][j]=0
相應的狀態轉移方程為:
實現代碼:
public static int findLongest(String A,String B){
int n = A.length();
int m = B.length();
if(m == 0 || n == 0){
return 0;
}
int result = 0;
int[][] dp = new int[n+1][m+1];
//初始狀態
for(int i = 0; i <= n;i++){
dp[i][0] = 0;
}
for(int i = 0; i <= m;i++){
dp[0][i] = 0;
}
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
if(A.charAt(i-1) == B.charAt(j-1)){
dp[i][j] = dp[i-1][j-1]+1;
result = Math.max(result,dp[i][j]);
}else {
dp[i][j] = 0;
}
}
}
return result;
}
H. 簡述得用計算機程序解決問題的基本過程。
分析問題。
用電腦來解決問題時,首先電腦要對問題進行定性、定量的分析,然後才能設計演算法。定性分析法是對問題進行「質」的方面的分析,確定問題的性質,定量分析法,是對要解決的問題的數量特徵、數量關系與數量變化進行分析的方法。
數學建模。
過比較人機解決問題的異同,鼓勵學生從不同角度進行思考問題,並培養學生利用計算機解決問題的興趣及習慣。
演算法分析。
演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。
程序實現。
設計完演算法後,就要使用某種程序設計語言編寫程序代碼,並最終得到相應結果。編程的語言包括匯編語言、機器語言和高級語言。高級語言中最簡單、最常用的是Visual Basic語言和Pascal語言。
I. 計算機解決問題的過程是什麼
計算機解決問題的過程是:分析問題、設計演算法、編寫程序、調試運行、檢測結果。
計算機解決問題的過程也是程序設計的過程。程序設計是運用計算機解決問題的一種方式,有些問題,如:數值、邏輯等問題適合於通過程序的方式解決。通過實例問題的分析、設計演算法、把所要解決的問題轉化成的程序輸入到計算機、經調試後讓計算機執行這個程序,最終達到利用計算機解決問題的過程。
編寫程序是以下步驟的一個往復過程:編寫新的源代碼,測試、分析和提高編寫的代碼以找出語法和語義錯誤。從事這種工作的人叫做程序設計員,由此產生了不同種類的程序設計員,每一種都有更細致的分工和任務。軟體工程師和系統分析員就是兩個例子。編程的長時間過程被稱之為「軟體開發」或者軟體工程。後者也由於這一學科的日益成熟而逐漸流行。
(9)不屬於用演算法解決問題的過程擴展閱讀:
計算機程序數據可以被定義為被程序處理的信息。當我們考慮到整個計算機系統時,有時程序和數據的區別就不是那麼明顯了。中央處理器有時有一組微指令控制硬體,數據可以是一個有待執行的程序,程序可以編寫成去編寫其它的程序;所有這些例子都使程序和數據的比較成為一種視角的選擇。有人甚至斷言程序和數據沒有區別。
編寫一個程序去生成另外一個程序的過程被稱之為原編程(Metaprogramming)。它可以被應用於讓程序根據給定數據生成代碼。單一一個程序可能不足以表示給定數據的所有方面。讓一個程序去分析這個數據並生成新的程序去處理數據所有的方面可能會容易一些。Lisp就是一例支持這種編程模式的程序語言。
在神經網路里儲存的權重是一種數據。正是這些權重數據,跟網路的拓撲結構一起,定義了網路的行為。人們通常很難界定這些數據到底表示什麼或者它們是否可以由程序來代替。這個例子以及跟人工智慧相關的其它一些問題進一步考驗程序和數據的區別。
J. 演算法是不是一個問題的解決思路。 而結構化編碼是不是相當於把這個解題思路用計算機語言表達出來。(
你的理解基本是正確的。
演算法就是解決問題的方法,但是需要具有確定性、有窮性等特性。
演算法可以用自然語言、偽代碼、流程圖、程序等表示,不會寫程序的人也可以設計演算法。
自然語言具有歧義,因此有時不滿足確定性,因此不是特別適合。
演算法的最高表示境界是源程序,這樣編譯後就可以運行了。