算法没有
㈠ 为什算法必须要有输出有时候却可以没有输入
如果是比较狭义的输入和输出,那么算法其实可以没有输出,不要太迷信教材
比如说,可以写一个确定的算法,做很多无用功而且并不输出,算法的目的只是为了让计算机发热,也没毛病
㈡ 如何证明LRU页面置换算法没有Belady现象
LRU一般都有栈的特性,一个N+1大小的cache很自然的就包含了大小为N的cache的内容。所以随着cache大小增加,hit rate要么不变,要么提高。
㈢ 算法必须有输入和输出吗
算法可以没有输入但是必须要用输出。也可以没有输入也可以没有输出,例如:求1到10的累加和,并不要求输出。
#include<stdio.h>
intmain(){
inti,sum=0;
for(i=1;i<=10;i++)
sum+=i;//printf("%d ",sum);
return0;}
程序可以正确编译并运行,但是并不知道1到10的累加和是多少。如果C语言没有输出,算法再优秀也是无用功,不能解决问题,所以C语言就有规定至少要有一个或者多个输出,即必须要有输出。
(3)算法没有扩展阅读
计算机算法有五个重要特性,就是有穷性、确定性、可行性、输入和输入。
1、有穷性: 一个算法必须保证执行有限步之后结束;
2、确切性: 算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
㈣ 算法与程序的区别与联系
算法和程序的区别是:
(1) 两者定义不同。算法是对特定问题求解步骤的描述,它是有限序列指令。而程序是实现预期目的而进行操作的一系列语句和指令。
说通俗一些算法是解决一个问题的思路,程序,是解决这些问题所具体好写的代码。算法没有语言界限。他只是一个思路。为实现相同的一个算法,用不同语言编写的程序会不一样。
(2)两者的书写规定不同。程序必须用规定的程序设计语言来写,而算法很随意。算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些逻辑判断。
简单算法举例 例:求 1*2*3*4*5
步骤 1 :先求 1*2 ,得到结果 2 。
步骤 2 :将步骤 1 得到的乘积 2 再乘以 3 ,得到结果 6 。
步骤 3 :将步骤 2 得到的乘积 6 再乘以 4 ,得到结果 24 。
步骤 4 :将步骤 3 得到的乘积 24 再乘以 5 ,得到最后结果 120 。
算法与程序的联系 :
算法和程序都是指令的有限序列 ,但是程序是算法,而算法不一定是 程序。程序 = 数据结构 + 算法。算法的主要目的在于为人们提供阅读了解所执行的工作流程与步骤。数据结构与算法要通过程序的实现,才能由计算机系统来执行。可以这样理解,数据结构和算法形成了可执行的程序。
(4)算法没有扩展阅读
算法的要素:
一、数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:
1、算术运算:加减乘除等运算。
2、逻辑运算:或、且、非等运算。
3、关系运算:大于、小于、等于、不等于等运算。
4、数据传输:输入、输出、赋值等运算。
二、算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
㈤ 为什么“用C程序实现的算法可以没有输入,但必须要有输出”
没有输出,不知道计算的结果那算法就没有意义了。输出不一定是要打印到屏幕上的,可以是下一个程序的输入,可以是一个文件、一段语音、一张图像,甚至是机器人的步行动作等等。