收藏 分享(赏)

西安电子科技大学《算法设计与分析》随课上机作业题.pdf

上传人:精品资料 文档编号:9854010 上传时间:2019-09-11 格式:PDF 页数:11 大小:350.66KB
下载 相关 举报
西安电子科技大学《算法设计与分析》随课上机作业题.pdf_第1页
第1页 / 共11页
西安电子科技大学《算法设计与分析》随课上机作业题.pdf_第2页
第2页 / 共11页
西安电子科技大学《算法设计与分析》随课上机作业题.pdf_第3页
第3页 / 共11页
西安电子科技大学《算法设计与分析》随课上机作业题.pdf_第4页
第4页 / 共11页
西安电子科技大学《算法设计与分析》随课上机作业题.pdf_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 - 1 - 算法设计与分析实验教学大纲 课程编号:CS5102 课程名称:算法设计与分析 英文名称:Design and Analysis of Algorithms 学分/学时:2 .5/ 40 课程性质:专业选修 适用专业:计算机科学与技术 建议开设学期:5 物联网工程 先修课程:离散数学,数据结构 开课单位:计算机学院 JA V A 程序设计 一、实验简介 本实验要求学生能够综合运用排序、 搜索、 图处理和字符串处理的基础算法和数据结构, 将算法理论、算法工程和编程实践相结合开发相应的软件,解决科学、工程和应用环境下的 实际问题。使学生能充分运用并掌握算法设计与分析的方法以及算法工程技

2、术,为从事计算 机工程和软件开发等相关工作打下坚实的基础。 二、实验课程目标与毕业要求 通过本课程的学习使学生系统掌握算法设计与分析的基本概念和基本原理, 理解排序、 搜索、图处理和字符串处理的算法设计理论及性能分析方法,掌握排序、搜索、图处理和字 符串处理的数据结构与算法实现技术。课程强调算法的开发及 Java 实现,理解相应算法的 性能特征,评估算法在应用程序中的潜在性能。 课程目标与毕业要求如下: 3. 能够在安全、隐私、环境、法律等现实约束条件下,运用算法分析技术对设计方案的 可行性进行研究,能够设计或组合已有算法达到对系统设计方案进行优选和改进,体现创新 意识。能够基于算法理论和算法

3、工程技术来选择研究路线,设计可行的实验方案。 (支撑毕 业要求 3.3和 4.2) 。 4. 了解算法领域主要资料来源及获取方法,能够利用网络查询、检索本专业文献、资料 及相关软件工具。 (支撑毕业要求 5.1) 。 - 2 - 课程目标与毕业要求的关系矩阵毕业要求指标点 1.4 2.3 3.3 4.2 5.1 课程目标 1 课程目标 2 课程目标3 课程目标4 三、实验内容及基本要求 (一)渗透问题(Percolation) 使用合并-查找(union-find)数据结构,编写程序通过蒙特卡罗模拟(Monte Carlo simulation)来估计渗透阈值的值。 安装 Java 编程环境。

4、按照以下各步指令,在你的计算机上(操作系统 Mac OS X (http:/algs4.cs.princeton.edu/mac) Windows (http:/algs4.cs.princeton.edu/windows) Linux (http:/algs4.cs.princeton.edu/linux)安装 Java 编程环境。执行这些指令后,在你的 Java classpath 下会有 stdlib.jar and algs4.jar。前者 包含库:从标准输入读数据、向标准输出写数据以及向标准绘制绘出结果,产生随机数、 计算统计量以及计时程序;后者包含了教科书中的所有算法。 给定由随机

5、分布的绝缘材料和金属材料构成的组合系统:金属材料占多大比例才能使组合 系统成为电导体? 给定一个表面有水的多孔景观(或下面有油),水将在什么条件下能够 通过底部排出(或油渗透到表面)? 科学家们已经定义了一个称为渗透(percolation)的抽 象过程来模拟这种情况。 模型。 我们使用 NN网格点来模型一个渗透系统。 每个格点或是 open 格点或是 blocked 格点。 一个 full site是一个 open 格点,它可以通过一连串的邻近(左,右,上,下)open 格 点连通到顶行的一个 open 格点。如果在底行中有一个 full site格点,则称系统是渗透的。 (对于绝缘/金属材

6、料的例子,open 格点对应于金属材料,渗透系统有一条从顶行到底行的 金属路径,且 full sites格点导电。对于多孔物质示例,open 格点对应于空格,水可能流过, 从而渗透系统使水充满 open 格点,自顶向下流动。) - 3 - 问题。 在一个著名的科学问题中,研究人员对以下问题感兴趣:如果将格点以概率 p独立地设置为 open 格点(因此以概率 1-p被设置为 blocked格点),系统渗透的概率是多少? 当 p = 0时,系统不会渗出; 当 p=1时,系统渗透。 下图显示了 2020随机网格(左)和 100100随机网格(右)的格点空置概率 p 与 渗滤概率。 当 N足够大时,存

7、在阈值 p*,使得当 p p*时,随机 N N 网格几乎总是渗透。 尚未得出用于确定渗滤阈值 p*的数学解。你的任务是编写一个计算机程序来估计 p*。 Percolation 数据类型。模型化一个 Percolation 系统,创建含有以下 API的数据类型 Percolation。 public class Percolation public Percolation(int N) / create N-by-N grid, with all sites blocked public void open(int i, int j) / open site (row i, column j)

8、if it is not already public boolean isOpen(int i, int j) / is site (row i, column j) open? public boolean isFull(int i, int j) / is site (row i, column j) full? public boolean percolates() / does the system percolate? public static void main(String args) / test client, optional 约定行 i 列 j下标在 1 和 N之间,其中(1, 1)为左上格点位置:如果 open(), isOpen(), or isFull()不在这个规定 的范围,则抛出 IndexOutOfBoundsException 例外。如果 N 0,构造函数应该抛出 IllegalArgumentException 例外。构造函数应该与 N 2 成正比。所有方法应该为常量时间加上 常量次调用合并-查找方法 union(), find(), connected(), and count()。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报