算法课程设计

算法课程设计
算法课程设计

摘要

当今科技迅速发展,运用计算机解决实际问题变得异常重要。尤其是运用计算机实现算法设计具要重大意义。算法设计与分析,其实可以解释为一种优化问题,一般是对可以利用计算机解决的离散型问题的优化。主要目的就是为了解决某一问题而提出的各种不同的解决方案,并且要针对具体问题做细致的空间与时间复杂度分析。本文是运用动态规划法解决租用游艇问题和回溯法解决部落卫队问题。利用C++编程实现算法。

动态规划算法是将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。首先找出最优解的性质,并刻画其结构特征,然后递归的定义最优值(写出动态规划方程)并且以自底向上的方式计算出最优值,最后根据计算最优值时得到的信息,构造一个最优解。

回溯法算法是确定了解空间的组织结构后,回溯法从开始节点(根结点)出发,以深度优先的方式搜索整个解空间。这个开始节点就成为一个活结点,同时也成为当前的扩展结点。在当前的扩展结点处,搜索向纵深方向移至一个新结点。这个新结点就成为一个新的或节点,并成为当前扩展结点。如果在当前的扩展结点处不能再向纵深方向移动,则当前的扩展结点就成为死结点。换句话说,这个节点,这个结点不再是一个活结点。此时,应往回(回溯)移动至最近一个活结点处,并使这个活结点成为当前的扩展结点。回溯法即以这种工作方式递归的在解空间中搜索,直到找到所要求的解或解空间中以无活结点为止。即通过确定初始解和剪枝函数原则画出状态图进行搜索产生全部可行解。

关键字:动态规划法、租用游艇问题、回溯法、部落卫队问题、C++

目录

一、动态规划法解决租用游艇问题 (2)

1.1问题重述 (2)

1.2 问题分析 (2)

1.3 算法原理与设计 (2)

1.3.1 算法原理 (2)

1.3.2 算法设计 (3)

1.4 算法实现与结果 (4)

1.5结果描述 (5)

二、回溯法解决部落卫队问题 (6)

2.1问题重述 (6)

2.2问题分析 (6)

2.3算法原理及设计 (6)

2.3.1算法原理 (6)

2.3.2算法设计 (7)

2.4算法实现 (8)

2.5结果描述 (10)

三、总结 (12)

参考文献 (13)

一、动态规划法解决租用游艇问题

1.1问题重述

长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。有可以游艇出租站用游艇并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1<=i

对于给定的游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i

输入文件示例输出文件示例 12

3 12

5 15

7

1.2 问题分析

将每个出租站看作一个点,站与站之间的关系可以用有向无环图表示,同时站与站之间的租金为边的权。此问题可转化成求站1到站n的最短路径问题。用动态规划求解,递推方程如下所示:

定义f[i][j]为站点i到站点j的最少租金。f[i][j]=min{f[i][k]+f[k][j]},i

1<=i,j<=n.初始最优解为f[1][n]。

1.3 算法原理与设计

1.3.1 算法原理

本文主要适用动态规划法的思想求解,其基本思想时将原问题分解为若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。该方法主要应用于最优化问题,这类问题会有多种可能的解,每个解都有一个值,而动态规划找出其中最优(最大或最)值的解。若存在若干个取最优值的解的话,它只取其中的一个。在求解过程中,该方法也是通过求解局部子问题的解达到全局最优解,但与分治法和贪心法不同的是,动态规划允许这些子问题不独立,也允许其通过自身子问题的解作出选择,该方法对每一个子问题只解一次,并将结果保存起来,避免每次碰到时都要重复计算。因此,动态规划法所针对的问题有一个显著的特征,即它所对应的子问题树中的子问题呈现大量的重复。动态规划法的关键就在于,对于重复出现的子问题,只在第一次遇到时加以求解,并把答案保存起来,让以后再遇到时直接引用,不必重新求解。

设计动态规划法一般包含以下4个步骤为:

◆找出最优解的性质,并刻画其结构特征;

◆递归地定义最优值;

◆以自底向上的方法计算出最优解;

◆根据计算最优值得到的信息,构造最优解。

1.3.2 算法设计

int main()

{

int num,i,j,k;

for(k=2;k

{

for(i=0;i

{

int mark=i+k;

for(j=i+1;j

{

if(list[i][j]+list[j][mark]

{

list[i][mark]=list[i][j]+list[j][mark];

}

}

}

}

cout<

return 0;

}

本课设中list[0][n-1]代表所用租金最少,n为游艇出租站的个数。List[i][j]表示从第i个游艇出租站到第j个游艇出租站的费用(其中i

list[0][n-1]=min{list[0][k]+list[k][n-1],list[0][n-1]}

1.4 算法实现与结果

程序代码:

#include

#include

using namespace std;

int main()

铁路站场及枢纽课程设计_图文

]

2)确定车站各项设备的相互位置及数量; 3)设计车站布置详图,并绘制比例尺平面图(1∶2000); 4)用分析计算法计算车站通过能力; 5)编写设计说明书。 1.3 初步分析 1)从图1可知,D站的车流来源于A、B、C三个方向,必须考虑折角车流问题,即D 站第三方向C的衔接位置问题。 2)从○2和○3给出的站坪长2200米和到发线有效长1050米的数据,并结合表2可确定 本区段站的车站布置形式应当为单线横列式区段站。 表2 不同车站站坪长度 车站种类车站布 置形式 远期到发线有效长度(m) 1050 850 750 650 单线双线单线双线单线双线单线 会让站、 越行站 横列式1450 1700 1250 1500 1150 1400 1050 中间站横列式1600 2000 1400 1800 1300 1700 1200 区段站横列式2000 2500 1800 2300 1700 2200 1600 纵列式3500 4000 3100 3600 2900 3400 2600 3)由○4可知各衔接方向机车类型一致,结合○3中,限制坡度均为6‰,到发线有效长 为1050米,可知在D站不需要变换牵引重量,无需增减轴作业,则不需要加挂补 机。 4)根据○5可知,在D站需要定期对机车进行保养、维修,需要在D站设立站修所和机 务段。 5)根据○8可以确定D站第三方向C的衔接位置、到发线的数量、牵出线的数量。 6)根据○8和○9的综合考虑可以确定机车走行线的数量,机车出入段线的数量。 2 车站基本布置图选择 2.1 车站类型的确定 设计车站为单线铁路区段站,按《铁路车站及枢纽设计规范》(GB50091-2006)的有关规定,单线铁路区段站应选择横列式布置图型,在有多个方向接入且运量较大时,可以预留或采用纵列式图型。设计车站衔接三个方向,运量适中,根据规定选用横列式布置图。

算法设计与分析课程设计(完整版)

HUNAN CITY UNIVERSITY 算法设计与分析课程设计 题目:求最大值与最小值问题 专业: 学号: 姓名: 指导教师: 成绩: 二0年月日

一、问题描述 输入一列整数,求出该列整数中的最大值与最小值。 二、课程设计目的 通过课程设计,提高用计算机解决实际问题的能力,提高独立实践的能力,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高适应实际,实践编程的能力。在实际的编程和调试综合试题的基础上,把高级语言程序设计的思想、编程巧和解题思路进行总结与概括,通过比较系统地练习达到真正比较熟练地掌握计算机编程的基本功,为后续的学习打下基础。了解一般程序设计的基本思路与方法。 三、问题分析 看到这个题目我们最容易想到的算法是直接比较算法:将数组的第 1 个元素分别赋给两个临时变量:fmax:=A[1]; fmin:=A[1]; 然后从数组的第 2 个元素 A[2]开始直到第 n个元素逐个与 fmax 和 fmin 比较,在每次比较中,如果A[i] > fmax,则用 A[i]的值替换 fmax 的值;如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值;否则保持 fmax(fmin)的值不变。这样在程序结束时的fmax、fmin 的值就分别是数组的最大值和最小值。这个算法在最好、最坏情况下,元素的比较次数都是 2(n-1),而平均比较次数也为 2(n-1)。 如果将上面的比较过程修改为:从数组的第 2 个元素 A[2]开始直到第 n 个元素,每个 A[i]都是首先与 fmax 比较,如果 A[i]>fmax,则用 A[i]的值替换 fmax 的值;否则才将 A[i]与 fmin 比较,如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值。 这样的算法在最好、最坏情况下使用的比较次数分别是 n-1 和 2(n-1),而平均比较次数是 3(n-1)/2,因为在比较过程中,将有一半的几率出现 A[i]>fmax 情况。

计算机科学与技术课程设计

一、课程设计题目 二叉平衡排序树 摘要问题描述:从一棵空树开始创建,在创建过程中,保证树的有序性,同时还要针对树的平衡性做些调整。最终要把创建好的二叉排序树转换为二叉平衡排序树。 基本要求:1.创建(插入、调整、改组) 2.输出 开发工具:windows XP操作系统,Microsoft visual c++ 6.0 编译系统; 关键词:C++ ; 二、设计主要目的及意义 目的: 1.熟悉掌握二叉树的基本操作 2.熟悉二叉树的创建(插入、调整、改组),输出以及把二叉排序树转换为二 叉平衡排序树 3.更进一步掌握有关二叉排序树的操作 意义: 软件课程设计是计算机科学与技术专业软件方向的一个重要环节,是语言类课程学习的总结。通过课程设计使我们加深对程序设计的理解,掌握程序开发的基本方法,深化学生面向对象的编程设计思想和新一代程序设计的逻辑思维方式,把课堂上所学到的多个单元串到一起,提高我们在软件设计过程中分析问题和解决问题的实际动手能力,使我们的理论知识和实践技能得到共同发展,最终提高我们解决问题和分析问题的能力。为我们踏上工作岗位之前提供了一次专业研究和项目开发的宝贵实践机会,为今后的工作积累经验。

三、课程设计的过程 主要算法说明: 1.主要数据结构定义 typedef struct node node ; Struct node { Node*parent; Node*left; Node*right; Int balance;//左右子树高度之差 Int key; } 2.主要函数说明 Int scarchNode(int key, node* root, node*parent):按key查找结点 Node* minNode(node* root):树root的最小结点 Node* maxNode(node* root):树root的最大结点 Node* preNode(node* target):求前驱结点 Node* nextNode(node* targer):求后继结点 node* adjustAVL(node* root, node* parent, node* child);调整,保证二叉树的平衡性 Node* insertNode(int key, node* root):插入 Node* deletevode(int key, node* root):删除 Node*createAVL(int* data, int size):创建新的二叉树 Void interordertraverse (node*root):中序遍历 Void preordertraverse(node* root):先序遍历 3.二叉排序树的插入和删除 a.二叉排序树的插入 在二叉排序树插入新结点,要保证插入后的二叉树仍符合二叉排序树的定义 插入过程:若二叉排序树正存在,则返回根结点;

铁路站场彭山中间站课程设计说明书样本

题目: 中间站设计 专业: 铁道运输 年级: 姓名: 学号: 西南交通大学峨眉校区

指导教师 评语 成绩 指导教师 ( 签章) 年月 日

目录第一章绪论 1.1设计目的 1.2设计资料 第二章站型布置及确定主要设备 2.1 分析原图和设计资料要求 2.2 确定站型 2.3 确定客运设备 2.3.1 旅客站房布置 2.3.2 旅客站台布置 2.3.3 跨线设备 2.4 确定货运设备 2.4.1 仓库 2.4.2 货物站台 2.4.3 堆放场 2.5确定到发线数量及位置 2.6 货场平面计算 2.6.1货场布置图种类

2.6.2 中间站货场布置 2.6.3 彭山站货场平面计算 2.7 确定牵出线数量及位置 2.8 确定道岔辙叉号数 2.9绘制车站平面示意图 第三章平面设计 3.1 确定设计线间距 3.2确定车站信号机以及警冲标位置 3.3 坐标计算 3.4 线路有效长 3.4.1 定义 3.4.2 线路有效长计算 3.5 确定进站道岔中心里程与进站信号机位置 3.6 道岔数量确定 3.7确定铺轨长度 第四章CAD绘制彭山站布置详图

第1章绪论 1.1设计目的 计的题目为中间站设计, 即根据所给的中间站的经济技术条件以及周边环现有的车站布置图。设计目的是为了使大家学会综合运用中间站的设计理论和方法; 熟悉设计中的基本运算和有关规定; 初步训练站场设计比例尺图的绘制, 掌握基本的绘图技巧; 建立设计中的竖向概念。按照设计要求, 找出原有设计中不合理和不优的地方进行更改。从而达到课程设计的目的, 即综合运用中间站的设计理论和方法; 熟悉设计中的基本运算和有关规定; 初步训练站场设计比例尺图的绘制, 掌握基本的绘图技巧; 建立设计中的竖向概念, 搜集的资料分析原有设计图的优点与缺点找出不合理的地方, 然后重新确定站型及主要设备的数量和布置方法来完成中间站的设计。包括各类线路, 各个道岔的号数和布置, 信号机的布置, 警冲标的布置, 轨道绝缘的设置。使新设计的中间站能够满足客货运量的要求已经车站各项作业的要求, 最后用CAD绘制出车站的详图, 独立完成中间站的设计工作。 1.2设计资料

算法课程设计资料

吉林财经大学课程设计报告 课程名称:算法课程设计 设计题目:插棒游戏 所在院系:管理科学与信息工程学院计算机科学与技术 指导教师: 职称:副教授 提交时间: 2017年4月

目录 一、题目描述与设计要求 (1) 1 题目描述与设计要求 (1) 二、问题分析 (1) 1 解空间 (1) 2 解空间结构 (2) 3 剪枝 (2) 4 回溯法的基本思想 (2) 5 回溯法的适用条件 (3) 6 回溯法的空间树 (4) 7 回溯法的基本步骤 (4) 三、算法设计 (5) 1 伪代码 (5) 四、复杂性分析 (6) 1 时间复杂度 (6) 2 空间复杂度该 (6) 五、样本测试、分析与总结 (6) 1 样本测试 (6) 2 分析 (7) 2.1、数据类型 (7) 2.2 主要函数思路 (7) 2.3 回溯 (8) 3 总结 (8) 参考文献 (9) 附录 (10)

一、题目描述与设计要求 1 题目描述与设计要求 这个类似谜题的游戏在等边三角形的板上布置了 15 个孔。在初始时候,如下图所示,除了一个孔,所有孔都插上了插棒。一个插棒可以跳过它的直接邻居,移到一个空白的位置上。这一跳会把被跳过的邻居从板上移走。设计并实现一个回溯算法,求解该谜题的下列版本: a.已知空孔的位置,求出消去 13 个插棒的最短步骤,对剩下的插棒的最终位置不限。 b.已知空孔的位置,求出消去 13 个插棒的最短步骤,剩下的插棒最终要落在最初的空孔上。 图1 二、问题分析 1 解空间 由于棋盘的对称性,棋盘在变化的过程中会形成多个同构的状态。 例如初始状态时,空孔只有一个,共有15种基本状态。如图2 所示,任意状态与空孔位置在其它的与该空孔颜色相同的点处的状态是同构的,它们可以通过沿中位线翻转和旋转60o 互相转换。也就是说,空孔所在位置的颜色相同的个状态是同构的。如空孔位置在顶点处的三个状态,他们仅通过旋转60o的操作即可互相转换。

内部堆排序算法的实现课程设计说明书

数据结构课程设计设计说明书 内部堆排序算法的实现 学生姓名金少伟 学号1121024029 班级信管1101 成绩 指导教师曹阳 数学与计算机科学学院 2013年3月15日

课程设计任务书 2012—2013学年第二学期 课程设计名称:数据结构课程设计 课程设计题目:内部堆排序算法的实现 完成期限:自2013年3 月4日至2013年3 月15 日共 2 周 设计内容: 堆排序(heap sort)是直接选择排序法的改进,排序时,需要一个记录大小的辅助空间。n个关键字序列K1,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ n) 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。(即如果按照线性存储该树,可得到一个不下降序列或不上升序列)。 本课程设计中主要完成以下内容: 1.设计堆排序算法并实现该算法。 2.对堆排序的时间复杂度及空间复杂度进行计算与探讨。 3.寻找改进堆排序的方法。 基本要求如下: 1.程序设计界面友好; 2.设计思想阐述清晰; 3.算法流程图正确; 4.软件测试方案合理、有效。指导教师:曹阳教研室负责人:申静 课程设计评阅

摘要 堆排序是直接选择排序法的改进。本课设以VC++6.0作为开发环境,C语言作为编程语言,编程实现了堆排序算法。程序运行正确,操作简单,易于为用户接受。 关键词:堆排序;C语言;时间复杂度

计算机控制技术课程设计报告

《计算机控制技术》课程设计单闭环直流电机调速系统

1 设计目的 计算机控制技术课程是集微机原理、计算机技术、控制理论、电子电路、自动控制系统、工业控制过程等课程基础知识一体的应用性课程,具有很强的实践性,通过这次课程设计进一步加深对计算机控制技术课程的理解,掌握计算机控制系统硬件和软件的设计思路,以及对相关课程理论知识的理解和融会贯通,提高运用已有的专业理论知识分析实际应用问题的能力和解决实际问题的技能,培养独立自主、综合分析与创新性应用的能力。 2 设计任务 2.1 设计题目 单闭环直流电机调速系统 实现一个单闭环直流电机调压调速控制,用键盘实现对直流电机的起/停、正/反转控制,速度调节要求既可用键盘数字量设定也可用电位器连续调节,需要有速度显示电路。扩展要求能够利用串口通信方式在PC上设置和显示速度曲线并且进行数据保存和查看。 2.2 设计要求 2.2.1 基本设计要求 (1)根据系统控制要求设计控制整体方案;包括微处理芯片选用,系统构成框图,确定参数测围等; (2)选用参数检测元件及变送器;系统硬件电路设计,包括输入接口电路、逻辑电路、操作键盘、输出电路、显示电路; (3)建立数学模型,确定控制算法; (4)设计功率驱动电路; (5)制作电路板,搭建系统,调试。 2.2.2 扩展设计要求 (1)在已能正常运行的微计算机控制系统的基础上,通过串口与PC连接; (2)编写人机界面控制和显示程序;编写微机通信程序;实现人机实时交互。

3方案比较 方案一:采用继电器对电动机的开或关进行控制。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。 方案二:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。 方案三:采用由电力电子器件组成的H 型PWM 电路。用单片机控制电力电子器件使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在电力电子器件的饱和截止模式下,效率非常高;H 型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM 调速技术。 兼于方案三调速特性优良、调整平滑、调整围广、过载能力大,因此本设计采用方案三。 4单闭环直流电机调速系统设计 4.1单闭环调速原理 4.1.1 闭环系统框图 4.1.2 调速原理 直流电机转速有: 常数Ke Ka 不变,Ra 比较小。 所以调节Ua 就能调节n 。 n n I K R K U K R I U n d d a e e d ?-=Φ -Φ=-=0φa a a U I U ≈-

【VIP专享】中间站站场课程设计

题目:中间站站场设计专业: 年级: 姓名: 四川交通职业技术学院

指导教师 评语 成绩 指导教师(签章) 年月日

四川交通职业技术学院道桥系 课程设计任务书 专业:铁道2010 学生姓名学生学号 指导教师辅导教师 开题日期年月日完成日期年月日教研室主任 一、课程设计题目 中间站站场设计 二、设计目的 1、综合运用中间站的设计理论和方法; 2、熟悉设计中的基本运算和有关规定; 3、初步训练站场设计比例尺图的绘制,掌握基本的绘图技巧; 4、建立设计中的竖向概念。

三、原始资料 某新建单线Ⅱ级干线,在红梅镇设中间站,预留站坪的平、纵断面资料如下图所示。 1、限制坡度6‰; 2、内燃牵引,东风型机车; 3、到发线有效长750m; 4、轨道为次重型,正线及站线皆用50 kg/m钢轨; 5、运输要求:每天直通货物列车15对,摘挂列车1对,零摘列车1对,旅客列车2对;本站货物装卸量较小,且以下行方向为主; 6、正线用高柱色灯信号机(基本宽度380 mm),站线用矮形一机构色灯信号机,并有轨道电路; 7、本站除正线外,尚需一条到发线通行超限货物列车; 8、货物线满足一次可装卸5辆车; 9、正线外轨超高h为150mm,站线无外轨超高。

四、方法步骤及进度安排 1、布置站型及确定各项主要设备(0.5周) (1)确定站型; (2)确定客运设备; (3)确定到发线数量及布置位置; (4)确定货运设备; (5)确定牵出线数量及位置; (6)绘制车站平面布置示意图; (7)确定道岔辙叉号数。 2、平面计算(1.5周) (1)确定设计线间距; (2)曲线要素计算; (3)货场平面计算; (4)确定车站信号机、警冲标位置; (5)坐标计算; (6)有效长计算; (7)确定进站道岔中心里程与进站信号机位置。 3、铺轨长度及道岔数量计算(0.5周) (1)确定铺轨长度 (2)确定道岔数量 4、绘制红梅站车站布置详图(0.5周)

Dijkstra算法的实现-数据结构与算法课程设计报告

合肥学院 计算机科学与技术系 课程设计报告 2009 ~2010 学年第2 学期 课程数据结构与算法 课程设计名称Dijkstra算法的实现 学生姓名张睿辰 学号0804012044 专业班级08计科(2)班 指导教师王昆仑张贯虹 2010 年6月

Dijkstra算法的实现 一、问题分析与任务定义 1、课程设计题目: 1.1题目:对任意图,选择合适的数据结构表示图,在此基础上实现求解最短路径 的Dijkstra算法 1.2 要求:设计合理的数据结构存储图,简单有效的实现Dijkstra算法。 1.3具体任务:建立图的存储模块,建立图的输出模块,在建图后从单源点开始求最短 路径,并显示出来! 2、原始数据的输入格式: 2.1建图模块:2.1.1数字 2.2.2数字+空格+数字+空格+数字+回车 2.3显示模块:回车 3、实现功能: 3.1 建立有向图 3.2 显示存储的有向图 3.3 显示从顶点到其他各顶点的最短路径 4、测试用例: 4.1正确数据:a)顶点:3;边值信息:0 1 6;0 2 4;1 2 5;2 0 6;0 0 0; b)顶点:0;边值信息:0 0 0; 输出结果:a) v0到v1的最短路径是6,v0到v2的最短路径是4 b) 没有最短路径 4.2错误数据:a) 顶点:a b)顶点:2;边值信息:0 3 6;0 4 4;13 5;0 0 0; c)顶点:3;边值信息:0 1 a; 输出结果:边值错误,请从新输入 5、问题分析: 实现本程序要解决以下几个问题: 5.1如何存储一个有向图。 5.2如何在界面中输出该有向图。 5.3如何定义起始源点。 5.4如何选择出最短路径。 5.5找到的最短路径如何输出。 二、数据结构的选择和概要设计 1、数据结构的选择: 在图的结构中,任意两个顶点之间都可能存在关系,比线性表和树要复杂。由于不存在严格的前后顺序,因而不能采用简单的数组来存储图;另一方面,如果采用链表,由于图中各顶点的度数不尽相同,最小度数和最大度数可能相差很大,如果按最大度数的

算法课程设计

<<算法与程序设计>>课程作业 班级:计本08-1班 学号:3081817106 姓名:詹萍

简单算法 符号三角形问题:这个问题用的是回溯法解决的,符号三角形要求在符号三角形的第1行有n个由“+”和“-”组成的符号,以后每行符号比上行少1个,2个同号下面是“+”,2个异号下面是“-”。计算有多少个不同的符号三角形,使其所含“+”和“-”的个数相同。 解题思路: 1、针对所给问题定义解空间,该问题的解空间为n元组x1,x2,x3...xn,其中xi ∈S,S={0,1},其中0代表“+”, 1代表“-”; 2、确定易于搜索的解空间结构,例如子集树,排列树,该问题是子集树; 3、以深度优先原则搜索解空间树,并利用剪枝函数避免无效搜索,这里的约束函数应该为:在符号三角形的第一行的前i个符号x1...xi确定后,就确定了一个由i*(i+1)/2个符号组成的符号三角形。下一步确定了x(i+1)的值后,只要在前面已确定的符号三角形的右边加一条边,就可以扩展为x1...x(i+1)所相应的符号三角形。最终由x1...xn所确定的符号三角形中包含的“+”号个数与“-”号个数同为n*(n+1)/4。因此在回溯搜索过程中可用当前符号三角形所包含的“+”号个数与“-”号个数均不超过n*(n+1)/4作为可行性约束;用0和1代替+和-,执行异或操作推出下一行对应符号,当所有符号总数为奇数时无解,当某种符号超过总数一半时无解。 4.由于回溯法是对解空间的深度优先搜索,不断改变第一行每个符号,搜索符合条件的解,因此可以使用递归回溯。 #include using namespace std; class Triangle {friend int Computer(int);//定义友元函数 private: void Backtrack(int t); //t,第一行第t个符号 int n, //第1行符号的个数 half, //每个三角形总符号数的一半 count, // 统计减号的个数 **p; //指向三角形的二维指针 long sum; }; //统计符合条件的的三角形的个数 void Triangle::Backtrack(int t)//回溯法 {int i,j,k,s,f; if((count>half)||(t * (t-1)/2 - count > half)) return; //如果加号或减号的个数大于符号三角形中总符号数的一半则退出函数if(t<=n) //回溯条件直到n for(i=0; i<2; i++) { p[1][t] = i; //第一行第t个符号 count += i; //“-”号统计 for(j=2; j<=t; j++) //当第一行符号>=2时,可以运算出下面行的某些符号 { p[j][t-j+1] = p[j-1][t-j+1]^p[j-1][t-j+2]; //通过异或运算下行符号 count += p[j][t-j+1];} if(t>=n)

铁路站场彭山中间站课程设计说明书

目:中间站设计 业:铁道运输 级: 名: 号: 西南交通大学峨眉校区

导教师 语 绩 导教师(签章) 年月日

目录第一章绪论 1.1设计目的 1.2设计资料 第二章站型布置及确定主要设备 2.1 分析原图和设计资料要求 2.2 确定站型 2.3 确定客运设备 2.3.1 旅客站房布置 2.3.2 旅客站台布置 2.3.3 跨线设备 2.4 确定货运设备 2.4.1 仓库 2.4.2 货物站台 2.4.3 堆放场 2.5确定到发线数量及位置 2.6 货场平面计算 2.6.1货场布置图种类

2.6.2 中间站货场布置 2.6.3 彭山站货场平面计算 .7 确定牵出线数量及位置 .8 确定道岔辙叉号数 .9绘制车站平面示意图 第三章平面设计 3.1 确定设计线间距 .2确定车站信号机以及警冲标位置 .3 坐标计算 3.4 线路有效长 3.4.1 定义 3.4.2 线路有效长计算 .5 确定进站道岔中心里程与进站信号机位置.6 道岔数量确定

.7确定铺轨长度 第四章CAD绘制彭山站布置详图 1章绪论 .1设计目的 计的题目为中间站设计,即根据所给的中间站的经济技术条件以及周边环现有的车站布置图。设计目的是为了使大家学会综合运用中间站的设计理论和方法;熟悉设计中的基本运算和有关规定;初步训练站场设计比例尺图的绘制,掌握基本的绘图技巧;建立设计中的竖向概念。按照设计要求,找出原有设计中不合理和不优的地方进行更改。从而达到课程设计的目的,即综合运用中间站的设计理论和方法;熟悉设计中的基本运算和有关规定;初步训练站场设计比例尺图的绘制,掌握基本的绘图技巧;建立设计中的竖向概念,搜集的资料分析原有设计图的优点与缺点找出不合理的地方,然后重新确定站型及主要设备的数量和布置方法来完成中间站的设计。包括各类线路,各个道岔的号数和布置,信号机的布置,警冲标的布置,轨道绝缘的设置。使新设计的中间站能够满足客货运量的要求已经车站各项作业的要求,最后用CAD绘制出车站的详图,独立完成中间站的设计工作。

计算机算法设计与分析课程设计.

成绩评定表 学生姓名吴旭东班级学号1309010236 专业信息与计算 科学课程设计题目 分治法解决棋盘覆 盖问题;回溯法解 决数字拆分问题 评 语 组长签字: 成绩 日期20 年月日

课程设计任务书 学院理学院专业信息与计算科学 学生姓名吴旭东班级学号1309010236 课程设计题目分治法解决棋盘覆盖问题;回溯法解决数字拆分问题实践教学要求与任务: 要求: 1.巩固和加深对基本算法的理解和运用,提高综合运用课程知识进行算法设计与分析的能力。 2.培养学生自学参考书籍,查阅手册、和文献资料的能力。 3.通过实际课程设计,掌握利用分治法或动态规划算法,回溯法或分支限界法等方法的算法的基本思想,并能运用这些方法设计算法并编写程序解决实际问题。 4.了解与课程有关的知识,能正确解释和分析实验结果。 任务: 按照算法设计方法和原理,设计算法,编写程序并分析结果,完成如下内容: 1.运用分治算法求解排序问题。 2. 运用回溯算法求解N后问题。 工作计划与进度安排: 第12周:查阅资料。掌握算法设计思想,进行算法设计。 第13周:算法实现,调试程序并进行结果分析。 撰写课程设计报告,验收与答辩。 指导教师: 201 年月日专业负责人: 201 年月日 学院教学副院长: 201 年月日

算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。算法 (Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。 分治法字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在一个2^k*2^k的棋盘上, 恰有一个放歌与其他方格不同,且称该棋盘为特殊棋盘。 回溯法的基本做法是深度优先搜索,是一种组织得井井有条的、能避免不必要重复搜索的穷举式搜索算法。数字拆分问题是指将一个整数划分为多个整数之和的问题。利用回溯法可以很好地解决数字拆分问题。将数字拆分然后回溯,从未解决问题。 关键词:分治法,回溯法,棋盘覆盖,数字拆分

计算机科学与技术专业课程设计

专业教育 ─我所认识的计算机专业 1.对专业的最初认识 1.1为什么选择计算机专业 计算机使当代社会的经济、政治、军事、科研、教育、服务等方面在概念和技术上发生了革命性的变化,对人类社会的进步已经并还将产生极为深刻的影响。目前,计算机是世界各发达国家激烈竞争的科学技术领域之一。 随着信息时代的到来,计算机逐渐成为技术及科学领域的核心。随着计算机的普及,其应用领域逐渐广泛,深刻影响着我们的学习,工作及生活。因而,计算机的学习与我们的生活息息相关。 1.2最初的认识 虽然对于这个专业刚开始的时候不了解它具体是干什么的,但是从小就对于计算机十分感兴趣,因此在高考完填报志愿时就报了这个专业。进入大学之后,看到培养计划发现这个专业应用还是挺多的,但是因此让自己更加的对以后的职业感到很迷茫,不知道究竟是该干什么了。但是既来之,则安之。相信在以后的学习过程中会慢慢地找到方向,并为之努力的。因此说对于计算机专业还是抱有很大的热情的。 2.学习的方法 2.1培养对专业的兴趣 俗话说兴趣是最好的老师,因此要想真正做好一件事情,学好自己的专业首先就要培养自己对本专业的兴趣。那么应该如何培养呢?可能阅读专业书籍对于刚刚步入大学的自己来说有点困难,也很枯燥,那么不妨先从科普书籍看起。科普书籍是了解理论、获得应用知识最好的途径。相信不少理工科的同学被量子物理和相对论搞得头昏脑胀过。究其原因,是我们的现实生活与抽象的数学模型之间存在思想意识上的鸿沟。然而要是读读斯蒂芬·霍金的《时间简史》,你就会被书中有趣的故事和例证所吸引,从而对抽象的理论有了感性的认识——即使仍然没有读懂,你也至少了解了这个学科研究的领域和目标是什么,也必然有所收获。 2.2认真学习专业课程,学好数学 大学计算机专业对数学的要求较高,其重要性不必多言。数学令不少同学头痛,除了其“繁”与“难”外,很大程度上是因为他们没有理解这些抽象理论的实际应用方向。与本科数学专业的课程设置相比,计算机专业的数

(完整版)铁路站场(彭山)中间站课程设计说明书

题目:中间站设计 专业:铁道运输 年级: 姓名: 学号: 西南交通大学峨眉校区

指导教师 评语 成绩 指导教师(签章) 年月日

目录第一章绪论 1.1设计目的 1.2设计资料 第二章站型布置及确定主要设备 2.1 分析原图和设计资料要求 2.2 确定站型 2.3 确定客运设备 2.3.1 旅客站房布置 2.3.2 旅客站台布置 2.3.3 跨线设备 2.4 确定货运设备 2.4.1 仓库 2.4.2 货物站台 2.4.3 堆放场 2.5确定到发线数量及位置 2.6 货场平面计算 2.6.1货场布置图种类 2.6.2 中间站货场布置 2.6.3 彭山站货场平面计算 2.7 确定牵出线数量及位置

2.8 确定道岔辙叉号数 2.9绘制车站平面示意图 第三章平面设计 3.1 确定设计线间距 3.2确定车站信号机以及警冲标位置 3.3 坐标计算 3.4 线路有效长 3.4.1 定义 3.4.2 线路有效长计算 3.5 确定进站道岔中心里程与进站信号机位置 3.6 道岔数量确定 3.7确定铺轨长度 第四章CAD绘制彭山站布置详图

第1章绪论 1.1设计目的 计的题目为中间站设计,即根据所给的中间站的经济技术条件以及周边环现有的车站布置图。设计目的是为了使大家学会综合运用中间站的设计理论和方法;熟悉设计中的基本运算和有关规定;初步训练站场设计比例尺图的绘制,掌握基本的绘图技巧;建立设计中的竖向概念。按照设计要求,找出原有设计中不合理和不优的地方进行更改。从而达到课程设计的目的,即综合运用中间站的设计理论和方法;熟悉设计中的基本运算和有关规定;初步训练站场设计比例尺图的绘制,掌握基本的绘图技巧;建立设计中的竖向概念,搜集的资料分析原有设计图的优点与缺点找出不合理的地方,然后重新确定站型及主要设备的数量和布置方法来完成中间站的设计。包括各类线路,各个道岔的号数和布置,信号机的布置,警冲标的布置,轨道绝缘的设置。使新设计的中间站能够满足客货运量的要求已经车站各项作业的要求,最后用CAD绘制出车站的详图,独立完成中间站的设计工作。 1.2设计资料 本次课程设计为彭山站,车站中心坐标为成昆线K076K+884处。上行方向衔接青龙场站,区间里程为11.172Km,下行方向衔接太和站,区间里程为8.522Km。本站为新建单线Ⅱ级干线,在彭山县凤鸣镇新村路设中间站,预留站坪的平、纵断面资料见附件车站布置图;限制坡度6‰;到发线有效长850m;运输要求:车站作业量见附件;正线用高柱色灯信号机(基本宽度380 mm),站线用矮柱色灯信号机,并有轨道电路;本站除正线外,尚需一条到发线通行超限货物列车;货物线设计以附件图为基础进行设计。

算法设计与分析课程设计-实验指导书

算法设计与分析课程设计 实验指导书 上海第二工业大学 计算机与信息学院软件工程系

一、运动员比赛日程表 设有n=2k个运动员要进行网球比赛。设计一个满足以下要求的比赛日程表: ●每个选手必须与其它n-1个选手各赛一次 ●每个选手一天只能赛一次 ●循环赛一共进行n-1天 1、运用分治策略,该问题的递归算法描述如下,根据算法编制程序并上机 通过。 输入:运动员人数n(假定n恰好为2的i次方) 输出:比赛日程表A[1..n,1..n] 1. for i←1 to n //设置运动员编号 2. A[i,1]←i 3. end for 4. Calendar(0,n) //位移为0,运动员人数为n。 过程Calendar(v, k) //v表示位移(v=起始行-1),k表示运动员人数。 1. if k=2 then //运动员人数为2个 2. A[v+2,2]←A[v+1,1] //处理右下角 3. A[v+1,2]←A[v+2,1]//处理右上角 4. else 5. Calendar(v,k/2) //假设已制定了v+1至v+k/2运动员循环赛日程表 6. Calendar(v+k/2,k/2) //假设已制定了v+k/2+1至v+k运动员循环赛日程表 7. comment:将2个k/2人组的解,组合成1个k人组的解。 8. for i←1 to k/2 9. for j←1 to k/2 10. A[v+i+k/2,j+k/2]←A[v+i,j] //沿对角线处理右下角 11. end for 12. end for 13. for i←k/2+1 to k 14. for j←1 to k/2 15. A[v+i-k/2,j+k/2]←A[v+i,j] //沿对角线处理右上角 16. end for 17. end for 18. end if 2、编制该问题的非递归算法,上机通过。 将如上文件保存在命名为“学号+姓名+实验一”的文件夹中并上传到指定的服务器。

计算机科学与技术专业课程设计

计算机学院计算机科学与技术专业《程序设计综合课程设计》报告(2007/2008学年第一学期) 学生姓名: 学生班级:信管 学生学号: 指导教师: 2009年12月6日

目录 第一章课程设计的目的和要求 (3) 第二章 (4) 第三章模版设计说明 (5) 3.1 系统总框架 (5) 第四章软件使用说明及运行结果 (7) 4.1使用说明 (7) 4.2 运行结果 (8) 第五章课程设计心得与体会 (10) 附录2:程序清单 (13)

第一章课程设计的目的和要求 1.1课程设计教学环节的主要目的 C语言课程设计的主要目的是培养学生综合运用C语言程序设计课程所学到的知识,编写C程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。 通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法。 C语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C语言程序及编写设计报告。 1.2课程设计实验报告主要要求 运用所学的知识,熟练掌握结构体函数的定义与运用、指针函数等函数的熟练掌握,将书本知识运用到程序设计中,做到活学活用。

第二章课程设计任务内容 此次程序设计内容是编写电子英汉词典 2.1、问题描述: 英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。 2.2、功能描述: 1、在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。 2、要求整个设计以人为本,用户界面友好。 2.3、算法提示: 1、数据结构:结构体数组 2、简单的程序设计 3、友好的窗口菜单的设计

站场课程设计

交通运输学院课程设计管理规范 一、课程设计教学基本要求 1.课程设计的教学目的 (1)培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科学态度和勇于探索的创新精神。 (2)培养学生综合运用所学知识与生产实践经验,分析和解决工程技术问题的能力。 (3)通过课程设计实践,训练并提高学生在理论计算、结构设计、工程绘图、查阅设计资料、运用标准与规范和应用计算机等方面的能力。 2.课程设计的教学要求 坚持“规格严格,功夫到家”的优良传统,加强基本功训练,做到理论与实际相结合,继承与创新相结合,充分发挥学生的主观能动性与教师因材施教、严格要求相结合,抓智力因素教育与非智力因素教育相结合,教书育人。 二、课程设计选题 1.选题要求 (1)课程设计的内容应属课程范围,应能满足课程设计的教学目的与要求,能使学生得到较全面的综合训练。 (2)课程设计题目的难度和工作量应适合学生的知识和能力状况,使学生在规定的时间内既工作量饱满,又经过努力能完成任务。 2.课程设计题目由指导教师拟定,并经系主任审定通过。 三、对学生的基本要求 1.要有勤于思考、刻苦钻研的学习精神和严肃认真、一丝不苟、有错必改、精益求精的工作态度,对有抄袭他人设计图纸(论文)或找他人代画设计图纸、代做论文等行为的弄虚作假者一律按不及格记成绩,并根据学校有关规定给予处理。 2.要敢于创新,勇于实践,注意培养创新意识和工程意识。 3.掌握课程的基本理论和基本知识扎实,概念清楚,设计计算正确,结构设计合理,实验数据可靠,软件程序运行良好,绘图符合标准,说明书(论文)撰写规范,答辩中回答问题正确。 4.要严格遵守学习纪律,遵守作息时间,不得迟到、早退和旷课,如因事、因病不能上课,则需请假,凡未请假或未获准假擅自不上课者,均按旷课论处。 四、课程设计检查 整个课程设计进行过程,指导教师都要随时对学生的课程设计工作进行情况和设计质量进行检查,发现问题及时解决,对重大问题要及时向教研室和学生所在系汇报。 五、课程设计的成绩评定 1.指导教师应认真审阅学生的报告,写出评语,评定成绩。课程设计的成绩按优、良、中、及格、不及格五级分评定。

计算机本科专业C语言课程设计题目(1)

计算机本科专业C语言课程设计题目 (10个题目) 课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。通常,课程设计中的问题比平时的习题复杂的多,也更接近实际。课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。 1、职工信息管理系统设计 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: 系统以菜单方式工作 职工信息录入功能(职工信息用文件保存)--输入 职工信息浏览功能--输出 查询和排序功能:(至少一种查询方式) --算法 按工资查询 按学历查询等 职工信息删除、修改功能(任选项) 2、学生信息管理系统设计 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能---输出 查询、排序功能---算法 按学号查询 按姓名查询 学生信息的删除与修改(可选项) 3、销售管理系统 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 1)销售员的代号 2)产品的代号 3)这种产品的当天的销售额 每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。 1)计算上个月每个人每种产品的销售额。 2)按销售额对销售员进行排序,输出排序结果(销售员代号) 3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) 4)输出统计报表 销售统计报表 产品代号销售之和

算法课程设计说明书

课程设计说明书 设计题目:二分法查找 专业:软件工程班级:11-2 设计人:王佳贺 山东科技大学 2013年11 月27日

课程设计任务书 学院:信息科学与工程学院专业:软件工程班级:2011-1 姓名:王佳贺 一、课程设计题目:二分法查找 二、课程设计主要参考资料 (1)《算法分析与设计》(第三版)王晓东电子工业出版社2007 (2) 三、课程设计应解决的主要问题 (1)查询数据 (2) (3) 四、课程设计相关附件(如:图纸、软件等): (1) (2) 五、任务发出日期:2013-11-21 课程设计完成日期:2013-11-27 指导教师签字:系主任签字:

指导教师对课程设计的评语 成绩: 指导教师签字: 年月日

1二分法详细设计 1.1二分搜索算法 下面我们考虑一种简单的情况。假设该线性表已经排好序了,不妨设它按照主键的递增顺序排列(即由小到大排列)。在这种情况下,我们是否有改进查找效率的可能呢? 如果线性表里只有一个元素,则只要比较这个元素和x就可以确定x是否在线性表中。因此这个问题满足分治法的第一个适用条件;同时我们注意到对于排好序的线性表L有以下性质:比较x和L中任意一个元素L[i],若x=L[i],则x在L中的位置就是i;如果xL[i],同理我们只要在L[i]的后面查找x即可。无论是在 L[i]的前面还是后面查找x,其方法都和在L中查找x一样,只不过是线性表的规模缩小了。这就说明了此问题满足分治法的第二个和第三个适用条件。很显然此问题分解出的子问题相互独立,即在L[i]的前面或后面查找x是独立的子问题,因此满足分治法的第四个适用条件。于是我们得到利用分治法在有序表中查找元素的算法。function Binary_Search(L,a,b,x); begin if a>b then return(-1) else begin m:=(a+b) div 2; if x=L[m] then return(m) else if x>L[m] then return(Binary_Search(L,m+1,b,x)); else return(Binary_Search(L,a,m-1,x)); end; end; 1.2二分法算法实现与编程

计算机平面设计专业课程设置

计算机平面设计专业 一、培养目标 1、总体目标 中职学校学生在校学习一技之长,关键是要在校所学课程与市场的工作相接轨,能够学以致用。学生在校学习两年之后,我们要努力使学生能够找到与专业对口的工作,并能够在短期内为企业创造经济效益。 2、具体目标 学生在校通过两年的训练,具有较强的专业造型能力;美术审美能力得到提高;能够熟练使用美术设计软件,能够独立进行图片修复,能够根据主题独立设计制作出完整的设计作品。培养学生的团队合作意识和吃苦耐劳的品质。 二、从业方向: 可以从事广告、印刷、媒体、网站平面设计;可以在婚纱影楼从事图片处理和设计工作;也可在超市、地产等企业从事美工工作,有能力独立建立设计公司和工作室等。 三、课程设置及说明 (一)美术基础课程 1)美术基础 美术基础课应有别于普通的常规美术基础教育,强调审美意识的培养、强调设计性和形式感 (二)设计基础课程 1)平面设计 2)色彩构成 (三)平面设计工具软件课程 1)图形图像处理(Photoshop) 2)计算机动画设计与制作(Flash) 3)图形设计与制作(Coreldraw) (四)平面设计实践课程 1)电子多媒体文件制作技术 1产品演示多媒体文件 2教学解说课件 3电子杂志、相册等 4FLASH网络广告 2)平面设计毕业作品创作 海报、折页、画册、书籍装帧、礼盒包装等创作及成品制作 学生完成平面设计毕业作品,需要多学科教师的共同指导,是一个由教学走入生产的过程,

使得学生的学习有个综合的质的变化。 四、毕业实习: 实习职位 1)广告公司、印刷厂、喷绘公司、平面传播媒体做平面设计 2)网站等电子媒体做电子文件设计和网页前台设计 3)婚纱影楼做图片处理师和平面设计师 4)超市、企业等单位做美工和企业广告策划等 5)留校在专业工作室实习 在实习期间,老师要经常参与实习,帮助学生解决工作中遇到的问题,同时也让自己接触生产,避免教学脱离实际。

相关文档
最新文档