文档库 最新最全的文档下载
当前位置:文档库 › 算法实验报告模板

算法实验报告模板

算法实验报告模板
算法实验报告模板

实验一实验名称

一、实验要求

1.全排列:要求键盘输入若干个不同的字符,然后产生并显示所有的排列

会场安排问题:

1.要求按贪心法求解问题;

2.要求读文本文件输入活动安排时间区间数据(数据在文件中的格式如下);

3.不能改变活动的编号,排序时不能移动活动的所有信息;

4.按选择顺序显示活动的编号、开始时间和结束时间。

输入数据的文本文件格式:第1行为活动个数,第2行开始每行一个活动,每个活动的数据有活动编号、开始时间、结束时间,用空格隔开。

如:data.txt

18

1 6 9

2 2 7

┋有18行

2.18 3 5

二、实验平台

1、编程环境:Microsoft Visual Studio 2010

2、运行环境:Microsoft windows7

三、核心代码

全排列:

#include

#include"iostream"

using namespace std;

void Permutation(char* letter, int* record, int length, int n)

{

if ( n == length )

{

static int count = 0;

count++;

cout << count << "->:\t ";

for ( int i = 0; i < length; i++ )

{

cout << letter[record[i]];

}

cout << endl;

return;

}

for ( int i = 0; i < length; i++ )

{

//确ā?定¨当獭?前°结á点?的?字?符?是?什?么′,?不?能ü和í已?经-确ā?定¨的?字?符?相à同?

int j;

for ( j = 0; j < n; j++ )

{

if ( i==record[j] )

break;

}

if ( j != n )

continue;

//确ā?定¨当獭?前°字?符?

if ( j == n )

record[n] = i;

Permutation(letter,record,length,n+1);

}

}

int _tmain(int argc, _TCHAR* argv[])

{

char* letter = "abcd";

int length = strlen(letter);

int* record = new int[length];

Permutation(letter,record,length,0);

system("pause");

return 0;

}

会场安排问题(贪心算法):

#include

#include

using namespace std;

#define N 50

#define TURE 1

#define FALSE 0

int Partition(int *b,int *a,int p,int r);

void QuickSort(int *b,int *a,int p,int r);

int A[N];

void GreedySelector(int n,int start[],int end[],int *A)

{

A[1]=true;

int j=1;

for(int i=2;i<=n;i++)

{

if(start[i]>=end[j])

{

A[i]=true;

j=i;

}

else A[i]=false;

}

}

//快ì速ù排?序?

void QuickSort(int *b,int *a,int p,int r)

{

int q;

if(p

{

q=Partition(b,a,p,r);

QuickSort(b,a,p,q-1);/*对?左哩?半?段?排?序?*/

QuickSort(b,a,q+1,r);/*对??半?段?排?序?*/ }

}

//中D间?数簓

int Partition(int *b,int *a,int p,int r)

{

int k,m,y,i=p,j=r+1;

int x=a[p];y=b[p];

while(1) {

while(a[++i]

while(a[--j]>x);

if(i>=j) break;

else {

k=a[i];

a[i]=a[j];

a[j]=k;

m=b[i];

b[i]=b[j];

b[j]=m;

}

}

a[p]=a[j];

b[p]=b[j];

a[j]=x;

b[j]=y;

return j;

}

int main()

{

fstream fin;

fin.open("input.txt",ios::in);

cout<<"在input.txt文件中输入数据,数据格式为:第1行为活动个数,第2行开始每行一个活动,每个活动的数据有活动编号,开始时间,结束时间,用空格隔开\n如:\n18\n1 6 9\n2 2 7\n.\n.\n.\n18 3 5\n\n";

if(fin.fail())

{

cout<<"文件不存在!"<

cout<<"退出程序..."<

return 0;

}

int n;

fin>>n;

int *a=new int[n];

int *b=new int[n];

int *c=new int[n];

for(int i=0;i<=n;i++)

{

fin>>a[i];

fin>>b[i];

fin>>c[i];

}

QuickSort(b,c,1,n);//按恪?结á束?时骸?间?非?减?序?排?

printf(":\n"); /*输?出?排?序?结á果?*/

printf("\n 序号\t开始时间结束时间\n");

printf("-------------------------\n");

for(int i=2;i<=n;i++)

printf(" %d\t %d\t %d\n",i,b[i],c[i]);

printf("-------------------------\n");

GreedySelector(n,b,c,A);

printf("安排的活动序号依次为:");

for(int i=2;i<=n;i++)

{

if(A[i]) printf("\n%d %d-->%d",i,b[i],c[i]);

}

printf("\n");

//int mm=Greedyplan(n,b,c,A);

//fstream fout;

//fout.open("output.txt",ios::out);

//fout<

//cout<<"答鋏案?请?打洙?开aoutput.txt查é看′\n\n";

fin.close();

//fout.close();

system("pause");

return 0;

}

四、实验结果截图

1.全排列:

2.会场安排问题:

实验者姓名:吕建雨实验报告日期:2015年1月1日

《计算方法》课内实验报告

《计算方法》实验报告 姓名: 班级: 学号: 实验日期: 2011年10月26日

一、实验题目: 数值积分 二、实验目的: 1.熟悉matlab 编写及运行数值计算程序的方法。 2.进一步理解数值积分的基础理论。 3.进一步掌握应用不同的数值积分方法求解给定的积分并给出数据结果及误差分析。 三、实验内容: 1.分别用复合梯形求积公式及复合辛普森求积公式计算积分xdx x ln 10 ? , 要求计算精度达到410-,给出计算结果并比较两种方法的计算节点数. 2.用龙贝格求积方法计算积分dx x x ?+3 021,使误差不超过510-. 3.用3=n 的高斯-勒让德公式计算积分?3 1 sin x e x ,给出计算结果. 4.用辛普森公式(取2==M N ) 计算二重积分.5 .00 5 .00 dydx e x y ? ? - 四、实验结果: 1.(1)复合梯形法: 将区间[a,b]划分为n 等份,分点n k n a b h kh a x k ,2,1,0,,=-=+=在每个区间[1,+k k x x ](k=0,1,2,···n-1)上采用梯形公式,则得 )()]()([2)()(1 11 1 f R x f x f h dx x f dx x f I n n k k k b a n k x x k k ++===∑?∑? -=+-=+ 故)]()(2)([21 1 b f x f a f h T n k k n ++=∑-=称为复合梯形公式 计算步长和划分的区间 Eps=1E-4 h1=sqrt(Eps/abs(-(1-0)/12*1/(2+1))) h1 =0.0600 N1=ceil(1/h1) N1 =17 用复合梯形需要计算17个结点。 复合梯形: function T=trap(f,a,b,n) h=(b-a)/n;

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

计算方法上机实验报告

. / 《计算方法》上机实验报告 班级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX XXXXXXX 任课教师:XXX 二〇一八年五月二十五日

前言 通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB 程序的编写。 以下为本次上机实验报告,按照实验内容共分为六部分。 实验一: 一、实验名称及题目: Newton 迭代法 例2.7(P38):应用Newton 迭代法求在附近的数 值解,并使其满足. 二、解题思路: 设'x 是0)(=x f 的根,选取0x 作为'x 初始近似值,过点())(,00x f x 做曲线)(x f y =的切线L ,L 的方程为))((')(000x x x f x f y -+=,求出L 与x 轴交

点的横坐标) (') (0001x f x f x x - =,称1x 为'x 的一次近似值,过点))(,(11x f x 做曲线)(x f y =的切线,求该切线与x 轴的横坐标) (') (1112x f x f x x - =称2x 为'x 的二次近似值,重复以上过程,得'x 的近似值序列{}n x ,把) (') (1n n n n x f x f x x - =+称为'x 的1+n 次近似值,这种求解方法就是牛顿迭代法。 三、Matlab 程序代码: function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1; f1=diff(f);%求导 y=subs(f,z,x0); y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1; while abs(x1-x0)>=tol x0=x1; y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end x=double(x1) K 四、运行结果:

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

北京理工大学《数据结构与算法设计》实验报告实验一

《数据结构与算法设计》 实验报告 ——实验一 学院: 班级: 学号: 姓名:

一、实验目的 1.通过实验实践、巩固线性表的相关操作; 2.熟悉VC环境,加强编程、调试的练习; 3.用C语言编写函数,实现循环链表的建立、插入、删除、取数据等基本操作; 4.理论知识与实际问题相结合,利用上述基本操作实现约瑟夫环。 二、实验内容 1、采用单向环表实现约瑟夫环。 请按以下要求编程实现: ①从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的 结点编号依次为1,2,……,m。 ②从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到 第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点 的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出 了这个环表的全部结点为止。 三、程序设计 1、概要设计 为实现上述程序功能,应用单向环表寄存编号,为此需要建立一个抽象数据类型:单向环表。 (1)、单向环表的抽象数据类型定义为: ADT Joseph{ 数据对象:D={ai|ai∈ElemSet,i=1,2,3……,n,n≥0} 数据关系:R1={ |ai∈D,i=1,2,……,n} 基本操作: create(&L,n) 操作结果:构造一个有n个结点的单向环表L。 show(L) 初始条件:单向环表L已存在。 操作结果:按顺序在屏幕上输出L的数据元素。 Josephf( L,m,s,n) 初始条件:单向环表L已存在, s>0,n>0,s

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

标准实验报告模板

实验报告 实验名称 课程名称___电子技术基础实验 院系部: 专业班级:学生姓名:学号:同组人:实验台号:指导教师:成绩:实验日期: 华北电力大学

实验报告要求: 一、实验目的及要求 二、仪器用具 三、实验原理 四、实验步骤(包括原理图、实验结果与数据处理) 五、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见。) 六、实验原始数据

一、实验目的及要求: 1. 学会放大器静态工作点的调试方法,分析静态工作点对放大器性能的影响。 2. 掌握放大器电压放大倍数和最大不失真输出电压的测试方法。 3. 悉常用电子仪器及模拟电路实验设备的使用。 二、仪器用具:略 三、实验原理 图1.2.1为电阻分压式工作点稳定单管放大器实验电路图。 图1.2.1 共射极单管放大器实验电路 在图1.2.1电路中,当流过偏置电阻1B R 和2B R 的电流远大于晶体管VT 的基极电流B I 时(一般5~10倍),则它的静态工作点可用下式估算: CC B2B1B1B U R R R U +≈ U CE =U CC -I C (R C +R F1 + R E ) 电压放大倍数: 1)1( // F R β++-=be L C V r R R β A 其中r be =200+26 (1+β)/I E 输入电阻:R i =R B1 // R B2 // [r be +(1+β)R F1] 输出电阻:R O ≈R C 四、实验方法与步骤: 1. 调试静态工作点 接通+12V 电源、调节R W ,使U E =2.0V ,测量U B 、U E 、U C 、R B2值。记入表1.2.1。 E U BE = U B - U E =0.665V ,U CE = U C - U E =5.8V,I C ≈I E = U E /R E =2/(1.1)=1.82mA 实验数据显示,Q 点的值满足放大电路的静态工作点要求,BJT 处于放大区。 2. 测量不同负载下的电压放大倍数 C E BE B E I R U U I ≈+-≈1 F R

c 计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为 calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单 选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成 员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始 化和完善各控件的响应函数代码。 (3)程序清单:

●添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法2.减法3. 乘法 4.除法 int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; }

算法设计与实验报告讲解

算法设计与分析实验报告 学院:信息学院 专业:物联网1101 姓名:黄振亮 学号:20113379 2013年11月

目录 作业1 0-1背包问题的动态规划算法 (7) 1.1算法应用背景 (3) 1.2算法原理 (3) 1.3算法描述 (4) 1.4程序实现及程序截图 (4) 1.4.1程序源码 (4) 1.4.2程序截图 (5) 1.5学习或程序调试心得 (6) 作业2 0-1背包问题的回溯算法 (7) 2.1算法应用背景 (3) 2.2算法原理 (3) 2.3算法描述 (4) 2.4程序实现及程序截图 (4) 2.4.1程序源码 (4) 2.4.2程序截图 (5) 2.5学习或程序调试心得 (6) 作业3循环赛日程表的分治算法 (7) 3.1算法应用背景 (3) 3.2算法原理 (3) 3.3算法描述 (4) 3.4程序实现及程序截图 (4)

3.4.1程序源码 (4) 3.4.2程序截图 (5) 3.5学习或程序调试心得 (6) 作业4活动安排的贪心算法 (7) 4.1算法应用背景 (3) 4.2算法原理 (3) 4.3算法描述 (4) 4.4程序实现及程序截图 (4) 4.4.1程序源码 (4) 4.4.2程序截图 (5) 4.5学习或程序调试心得 (6)

作业1 0-1背包问题的动态规划算法 1.1算法应用背景 从计算复杂性来看,背包问题是一个NP难解问题。半个世纪以来,该问题一直是算法与复杂性研究的热点之一。另外,背包问题在信息加密、预算控制、项目选择、材料切割、货物装载、网络信息安全等应用中具有重要的价值。如果能够解决这个问题那么则具有很高的经济价值和决策价值,在上述领域可以获得最大的价值。本文从动态规划角度给出一种解决背包问题的算法。 1.2算法原理 1.2.1、问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 形式化描述:给定c >0, wi >0, vi >0 , 1≤i≤n.要求找一n元向量(x1,x2,…,xn,), xi ∈{0,1}, ?∑ wi xi≤c,且∑ vi xi达最大.即一个特殊的整数规划问题。 1.2.2、最优性原理: 设(y1,y2,…,yn)是 (3.4.1)的一个最优解.则(y2,…,yn)是下面相应子问题的一个最优解: 证明:使用反证法。若不然,设(z2,z3,…,zn)是上述子问题的一个最优解,而(y2,y3,…,yn)不是它的最优解。显然有 ∑vizi > ∑viyi (i=2,…,n) 且 w1y1+ ∑wizi<= c 因此 v1y1+ ∑vizi (i=2,…,n) > ∑ viyi, (i=1,…,n) 说明(y1,z2, z3,…,zn)是(3.4.1)0-1背包问题的一个更优解,导出(y1,y2,…,yn)不是背包问题的最优解,矛盾。 1.2.3、递推关系:

计算方法实验报告

计算方法实验报告(四) 方程和方程组的迭代解法 一、实验问题 利用简单迭代法,两种加速技术,牛顿法,改进牛顿法,弦割法求解习题5-1,5-2,5-3中的一题,并尽可能准确。 选取5-3:求在x=1.5附近的根。 二、问题的分析(描述算法的步骤等) (1)简单迭代法算法: 给定初始近似值,求的解。 Step 1 令i=0; Step 2 令(计算); Step 3 如果,则迭代终止,否则重复Step 2。 (2)Aitken加速法算法 Step 1 令k=0,利用简单迭代算法得到迭代序列; Step 2 令-(计算得到一个新的序列,其中k=0,1,2…);Step 3 如果,则迭代终止,否则重复Step 2。 (3)插值加速法算法 Step 1 令k=0,利用简单迭代算法得到迭代序列; Step 2 令+(计算得到一个新的序列,其中k=1,2,3…); Step 3 如果,则迭代终止,否则重复Step 2。 (4)牛顿法算法

Step 1给定初始近似值; Step 2令,其中k计算得到的序列; Step 3如果,则迭代终止,否则重复Step 2。 (5)改进牛顿法的算法 Step 1给定初始近似值; Step 2令,其中k迭代计算得到的序列; Step 3如果,则迭代终止,否则重复Step 2。 (6)弦割法算法(双点弦割法) Step 1给定初始近似值,; Step 2令其中k计算得到的序列; Step 3如果,则迭代终止,否则重复Step 2。 三、程序设计 (1)简单迭代法 利用迭代公式进行迭代运算。 #include #include #include double fun(double x) { double c=1+x*x; return pow(c,1/3.0); } void main() { double x=1.5; double y=0; double D=1;

计算方法实验报告格式

计算方法实验报告格式 小组名称: 组长姓名(班号): 小组成员姓名(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一个完整的实验,应包括数据准备、理论基础、实验内容及方法,最终对实验结果进行分析,以达到对理论知识的感性认识,进一步加深对相关算法的理解,数值实验以实验报告形式完成,实验报告格式如下: 一、实验名称 实验者可根据报告形式需要适当写出. 二、实验目的及要求 首先要求做实验者明确,为什么要做某个实验,实验目的是什么,做完该实验应达到什么结果,在实验过程中的注意事项,实验方法对结果的影响也可以以实验目的的形式列出. 三、算法描述(实验原理与基础理论) 数值实验本身就是为了加深对基础理论及方法的理解而设置的,所以要求将实验涉及到的理论基础,算法原理详尽列出. 四、实验内容 实验内容主要包括实验的实施方案、步骤、实验数据准备、实验的算法以及可能用到的仪器设备. 五、程序流程图 画出程序实现过程的流程图,以便更好的对程序执行的过程有清楚的认识,在程序调试过程中更容易发现问题. 六、实验结果 实验结果应包括实验的原始数据、中间结果及实验的最终结果,复杂的结果可以用表格

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 1.理解数值计算稳定性的概念. 2.了解数值计算方法的必要性. 3.体会数值计算的收敛性与收敛速度. 三、实验内容 计算dx x x I n n ? += 1 10 ,1,2,,10n = . 四、算法描述 由 dx x x I n n ? += 1 10 ,知 dx x x I n n ?+=--101110,则

银行家算法设计实验报告

银行家算法设计实验报告

银行家算法设计实验报告 一.题目分析 1.银行家算法: 我们可以把操作系统看做是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求资源相当于客户向银行家贷款。操作系统按银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程尚需求的资源量,若是系统现存的资源可以满足它尚需求的资源量,则按当前的申请量来分配资源,否则就推迟分配。 当进程在执行中继续申请资源时,先测试该进程申请的资源量是否超过了它尚需的资源量。若超过则拒绝分配,若没有超过则再测试系统尚存的资源是否满足该进程尚需的资源量,若满足即可按当前的申请量来分配,若不满足亦推迟分配。 2.基本要求: (1)可以输入某系统的资源以及T0时刻进程对资源的占用及需求情况的表项,以及T0时刻系统的可利用资源数。 (2)对T0时刻的进行安全性检测,即检测在T0时刻该状态是否安全。

(3)进程申请资源,用银行家算法对其进行检测,分为以下三种情况: A. 所申请的资源大于其所需资源,提示分配不合理不予分配并返回 B. 所申请的资源未大于其所需资源, 但大于系统此时的可利用资源,提 示分配不合理不予分配并返回。 C. 所申请的资源未大于其所需资源, 亦未大于系统此时的可利用资源,预 分配并进行安全性检查: a. 预分配后系统是安全的,将该进 程所申请的资源予以实际分配并 打印后返回。 b. 与分配后系统进入不安全状态,提示系统不安全并返回。 (4)对输入进行检查,即若输入不符合条件,应当报错并返回重新输入。 3.目的: 根据设计题目的要求,充分地分析和理解题 目,叙述系统的要求,明确程序要求实现的功能以及限制条件。 明白自己需要用代码实现的功能,清楚编写每部分代码的目的,做到有的放矢,有条理不遗漏的用代码实现银行家算法。

实验报告标准范本

报告编号:LX-FS-A59757 实验报告标准范本 The Stage T asks Completed According T o The Plan Reflect The Basic Situation In The Work And The Lessons Learned In The Work, So As T o Obtain Further Guidance From The Superior. 编写:_________________________ 审批:_________________________ 时间:________年_____月_____日 A4打印/ 新修订/ 完整/ 内容可编辑

实验报告标准范本 使用说明:本报告资料适用于按计划完成的阶段任务而进行的,反映工作中的基本情况、工作中取得的经验教训、存在的问题以及今后工作设想的汇报,以取得上级的进一步指导作用。资料内容可按真实状况进行条款调整,套用时请仔细阅读。 物理探究实验:影响摩擦力大小的因素 探究准备 技能准备: 弹簧测力计,长木板,棉布,毛巾,带钩长方体木块,砝码,刻度尺,秒表。 知识准备: 1. 二力平衡的条件:作用在同一个物体上的两个力,如果大小相等,方向相反,并且在同一直线上,这两个力就平衡。 2. 在平衡力的作用下,静止的物体保持静止状态,运动的物体保持匀速直线运动状态。

3. 两个相互接触的物体,当它们做相对运动时或有相对运动的趋势时,在接触面上会产生一种阻碍相对运动的力,这种力就叫摩擦力。 4. 弹簧测力计拉着木块在水平面上做匀速直线运动时,拉力的大小就等于摩擦力的大小,拉力的数值可从弹簧测力计上读出,这样就测出了木块与水平面之间的摩擦力。 探究导引 探究指导: 关闭发动机的列车会停下来,自由摆动的秋千会停下来,踢出去的足球会停下来,运动的物体之所以会停下来,是因为受到了摩擦力。 运动物体产生摩擦力必须具备以下三个条件:1.物体间要相互接触,且挤压;2.接触面要粗糙;3.两物体间要发生相对运动或有相对运动的趋势。三个条

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

数学计算方法实验报告

数学计算方法实验报告 习题二 2.估计用二分法求方程f(x)=x3+4x2-10=0在区间[1,2]内根的近似值,为使方程不超过10时所需的二分次数。f(x k) 程序过程: function two (tolerance) a=1;b=2;counter=0; while (abs(b-a)>tolerance) c=(a+b)/2; fa=a^3+4*a^2-10;

fb=b^3+4*b^2-10; fc=c^3+4*c^2-10; if ((fa==0|fb==0)) disp(counter); elseif (fa*fc<0) b=c;counter=counter+1; elseif (fb*fc<0) a=c;counter=counter+1; elseif (fb==0) disp(counter); end end solution=(a+b)/2; disp(solution); disp(counter); 实验结果: 6.取x0=1.5,用牛顿迭代法求第三中的方程根.f(x)=x3+4x2-10=0的近似值(精确到||x k+1-x k|≦10-5,并将迭代次数与3题比较。 程序过程: function six (g) a=1.5; fa=a^3+4*a^2-10;

ga=3*a^2+8*a; b=a-fa/ga; k=1; while(abs(b-a)>g) a=b; fa=a^3+4*a^2-10; ga=3*a^2+8*a; b=a-fa/ga; k=k+1; end format long; disp(a); disp(k); 实验结果:程序结果计算结果 8.用弦割法求方程f(x)=x3-3x2-x+9=0在区间[-2,-1]内的一个实根近似值x k,|f(x k)|≦10-5. 程序过程: function eight (t) a=-2; b=-1; fa=a^3-3*a^2-a+9; fb=b^3-3*b^2-b+9; c=b-fb*(b-a)/(fb-fa); k=1; while(abs(c-b)>t) a=b; b=c; fa=a^3-3*a^2-a+9; fb=b^3-3*b^2-b+9; c=b-fb*(b-a)/(fb-fa); k=k+1; end

实验报告标准模板

实验报告标准模板 实验报告是在科学研究活动中人们为了检验某一种科学理论或假设,通过实验中的观察、分析、综合、判断,如实地把实验的全过程和实验结果用文字形式记录下来的书面材料。实验报告具有情报交流的作用和保留资料的作用。以下是整理的实验报告标准模板,欢迎阅读! 书法教育课题开题实验报告 一、开题背景: 1 、《中国教育改革和发展纲要》指出:中小学要由应试教育转向全面提高国民素质的轨道,面向全体学生,全面提高学生思想、文化、科学、劳动技能和身体素质,促进学生生动活泼地发展,办出各自的特色。《纲要》为我们创办书法特色指明了方向,注入了活力。我校决定从学校的写字教学入手,争创特色,全面落实从应试教育向素质教育的转轨。学校在全面完成九年义务教育所规定课程外,开设了写字课,以全面提高学生的书写水平。我们认识到写好汉字不仅是书法家的事,也是每个中国人的事。书写对提高学生文化素质、磨练意志、陶冶情操、培养形成良好习惯、优秀品格都会产生潜移默化的作用。因此,学校运用多种方式,加大宣传力度,从多个层面分析,说明加强写字教学对搞好义务教育阶段的基础教育及发展学生的文化素质和人格素质的重大意义。二、课题理论价值和实践价值本课题研究的理论价值 培养学生良好的写字素质,具有现实的针对性,是学生自身之需,是基础教育之需,是社会发展之需。通过本课题的研究,更新写字教育观念,促进

教师形成“学写字即学做人”的教育意识,让学生成为写字主体,成为学习实践、创造发展的主体;更新写字教育目标,让教学不再只是让学生学会了写字,而是要教会学生学会求知,使之成为发现问题的探索者,知识信息的反馈者,学习目标的实现者和成功者;更新写字教育方法,即根据写字教材特点,寻找有利于发展学生主体性的教学形式、方法和手段;优化写字教育资源,力求着眼于学生的终身发展,实现学生写字的自主化,课堂教学的现代化,教育教学的民主化,达到写字教育个性化、特色化,从而为培养学生写字素质服务,为学校写字特色建设服务。 本课题研究的实践价值 从教育论角度看,教育不单单是传授知识,更重要的是培养学生独立获取知识和运用知识的能力。国内不少专家研究表明,汉字的书写有利于人的左右脑的协调发展。写字教育要努力唤起学生积极的需要,创造各种既能满足学生的心理需要,又能鼓励学生主动参与的机会,获得多种心理上的体验,进而提高其写字素质。写字的学习,是一种创造性的素质教育活动。要找到合理的写字教育途径,运用恰当的写字教育手段,以渐变为指导,从传统中捕捉精神,在创新中融进自我,急躁不得,虚伪不得。它要求学生不仅要练手、练眼,更要练心,需要学生巨量的实践和闪光灵感,以透悟艺术规律,掌握精熟技巧,提高诸多修养,净化心灵品格。进而才能培养学生具有汉字书写所需的多种写字素质(如身体素质、心理素质、审美素质、思想素质等)和一些最基本的理论素质(主要是经过有选择后提取的有关技法论述),达到健身怡情的目的,从而提高学生的综合素质。这样,既为学生在日后的书法学习奠定了良好基础,又使一些将要从事其他研究与工作的学

计算方法实验报告 拟合

南京信息工程大学实验(实习)报告 一、实验目的: 用最小二乘法将给定的十个点拟合成三次多项式。 二、实验步骤: 用matlab编制以函数为基的多项式最小二乘拟合程序,并用于对下列数据作三次多项式最小二乘拟合(取权函数wi=1) x -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 y -2.30 -1 -0.14 -0.25 0.61 1.03 1.75 2.75 4.42 6.94 给定直线方程为:y=1/4*x3+1/2*x2+x+1 三、实验结论: 最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。 一般地。当测量数据的散布图无明显的规律时,习惯上取n次代数多项式。 程序运行结果为: a = 0.9731 1.1023 0.4862 0.2238 即拟合的三次方程为:y=0.9731+1.1023x+0.4862*x2+0.2238*x3

-2.5 -2-1.5-1-0.5 00.51 1.52 2.5 -4-20246 81012 x 轴 y 轴 拟合图 离散点 y=a(1)+a(2)*x+a(3)*x.2+a(4)*x.3 结论: 一般情况下,拟合函数使得所有的残差为零是不可能的。由图形可以看出最小二乘解决了残差的正负相互抵消的问题,使得拟合函数更加密合实验数据。 优点:曲线拟合是使拟合函数和一系列的离散点与观测值的偏差平方和达到最小。 缺点:由于计算方法简单,若要保证数据的精确度,需要大量的数据代入计算。

算法与设计实验报告

算法与分析实验报告软件工程专业 安徽工业大学 指导老师:许精明

实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 一:实验目的 1:掌握动态规划算法的基本思想,学会用其解决实际问题。 2:通过几个基本的实验,提高算法分析与设计能力,提高动手操作能力和培养良好的编程习惯。 二:实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 实验一:杨辉三角

问题分析: ①每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 ②第n行数之和为2^n。 ③下一行每个数字等于上一行的左右两个数字之和。 算法设计及相关源代码: public void yanghui(int n) { int[] a = new int[n]; if(n==1){ System.out.println(1); }else if(n==2) { System.out.print(1 + " " +1); }else{ a[1]=1; System.out.println(a[1]); a[2]=1;

System.out.println(a[1]+" "+a[2]); for(int i=3;i<=n;i++){ a[1]=a[i]=1; for(int j=i-1;j>1;j--){ a[j]=a[j]+a[j-1]; } for(int j=1;j<=i;j++){ System.out.print(a[j]+" "); } System.out.println(); } } } 实验结果:n=10 实验二:0-1背包问题 问题分析::令V(i,j)表示在前i(1<=i<=n)个物品中能够装入容量为就 j(1<=j<=C)的背包中的物品的最大价值,则可以得到如下的动态规划函数: (1) V(i,0)=V(0,j)=0 (2) V(i,j)=V(i-1,j) j

计算方法实验报告

实验报告 一、求方程f(x)=x^3-sinx-12x+1的全部根, ε=1e -6 1、 用一般迭代法; 2、 用牛顿迭代法; 并比较两种迭代的收敛速度。 一、首先,由题可求得:12cos 3)(2 ' --=x x x f . 其次,分析得到其根所在的区间。 ① 令()0=x f ,可得到x x x sin 1123 =+-. ② 用一阶导数分析得到1123 +-x x 和x sin 两个函数的增减区间;再用二阶导数分析得到 两个函数的拐点以及凹凸区间. ③ 在直角坐标轴上描摹出01123 =+-x x 和0sin =x 的图,在图上可以看到他们的交点,然后估计交点所在的区间,即是所要求的根的区间。经过估计,得到根所在的区间为 []3,4--,[]1,0和[]4,3. 1、 一般迭代法 (1)算法步骤: 设ε为给定的允许精度,迭代法的计算步骤为: ① 选定初值0x .由()0=x f 确定函数()x g ,得等价形式()x g x =. ② 计算()0x g .由迭代公式得()01x g x =. ③ 如果ε≤-01x x ,则迭代结束,取1x 为解的近似值;否则,用1x 代替0x ,重复步骤②和步骤③. (2)程序代码: ① 在区间[]3,4--内, 代码: clc

x0=-3.5; %初值0x iter_max=100; %迭代的最大次数 ep=1e-6; %允许精度 ε k=0; while k<=iter_max %k 从0开始到iter_max 循环 x1=(sin(x0)+12*x0-1).^(1/3); %代入0x ,算出1x 的值 if abs(x1-x0)

相关文档
相关文档 最新文档