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. 算法是不是一个问题的解决思路。 而结构化编码是不是相当于把这个解题思路用计算机语言表达出来。(
你的理解基本是正确的。
算法就是解决问题的方法,但是需要具有确定性、有穷性等特性。
算法可以用自然语言、伪代码、流程图、程序等表示,不会写程序的人也可以设计算法。
自然语言具有歧义,因此有时不满足确定性,因此不是特别适合。
算法的最高表示境界是源程序,这样编译后就可以运行了。