北邮经济管理学院 实习题(高手进来;找最佳算法)(0分)

  • 主题发起人 主题发起人 liuguan
  • 开始时间 开始时间
L

liuguan

Unregistered / Unconfirmed
GUEST, unregistred user!
小学期计算机上机实习大纲 (2001年6月)
一、必做题
(管理信息系统专业必做题为1,2,3,8,9,其它专业必做题为1,2,3,6,9,各专业从剩余的题中再选择一题作为选择题):

1. 编写排序程序:
(1) 生成n个[0,65535]以内的整数随机数,存入文本文件;
(2) 将n个随机数从小到大排序,并显示结果。排序要求采用 '气泡法' 和 'k桶法',并比较两种方法随n增加各自所用的运行时间 (n至少取值 2000, 4000, 6000,10000)。(提示:用GetTime获取运行时间,k桶法尽量不用动态指针,但可用指针数组;随机数的产生见第2题)
//气泡法:将第1个数与第2个数比较,若逆顺序则交换它们的位置;然后第2个与第3个数比较,以此类推,...,直到第n-1个数与第n个数比较,完成第一轮的比较。显然,第一轮比较后,最大的数 '浮'到了最后一位。然后进行第二轮比较,以此类推,直到没有交换发生。 注意编程要用最小的计算量。
//k桶法:k桶法有两个主要步骤:分桶,整合。
分桶:把n个数依次放入k个桶中,除了第k个桶外,放入前k-1个桶中的数都要求后一个大于前一个。分桶的具体规则如下:
第1个数放入第一个桶内,第2个数若大于第一个桶中的数(即第一个数)则放入第一个桶内否则放入第二桶内,以此类推。设现要将第j个数放入某桶中,先从第一个桶试起,若第j个数大于当前第一个桶中最后一个数,则放入第一个桶中,否则试放第二个桶,以此类推,若前k-1个桶都不能放入,则直接放入第k个桶。
整合:把k个桶中当前排在最前面的数中最小者依次放回到原数组中,直到k个桶空为止。若整合后的数组已排好序,则算法停止,否则重新分桶、整合,直到排好序为止。
对于k桶法要求可以改变k的值,并通过试验观察k的影响。

2. 用函数编制如下的混合同余的伪随机数发生器
Function rand(var y: longint): real;
begin
y:=(a*y+c) mod M;
rand:=y/M;
end;

函数中的M, a, b分别为常数
M=65536;
a=8*trunc((M div 2)*arctan(1.0)/8.0)+5;
(25733)
c=2*trunc((M div 2)*(0.5-sqrt(3.0)/6.0)+1;
(13849)
思考该函数是如何产生随机数的,rand的取值范围是什么?y的取值范围是什么?为了使上述函数能产生不同的随机数序列或相同的序列,可通过对y赋不同的或相同的初值来实现,y的初值称为随机数种子。如
seed:=0;
y:=seed;
for i:=1 to Ndo
x:=rand(y);
就可得到以0为种子的N个随机数的序列。
(1)编制程序测试上述函数产生的随机数序列的循环长度 (y的值再次等于种子时);
(2)测试上述函数产生的随机数序列的最大连续上升次数;
(3)用0,1,2,3,4,5,6,7,8,9十个数作随机数种子,依次生成十组随机数序列,每组10000个
样本点,进行均匀性检验。检验方法如下:
把随机数分为十个区间[0,0.1),[0.1,0.2),...,[0.9,1.0);
分别统计每组10000个随机数落入这十个区间的个数,存入矩阵
T=array[1..10,0..10] of integer;
其中T[i,0] 存放第i组的随机数种子;
其中T[i,j] 存放第i组随机数落入第j区间的个数;
统计每组内分布的均匀性,即计算每组落入各区间的个数的标准差,计算公式:
DL= , i=1,2,...,10
统计每区间内各组落入分布的均匀性,即计算每区间落入数的均值和标准差,计算公式如下:
AC[j]= , j=1,2,...,10
DC[j]= , j=1,2,...,10
(4) 将上述统计结果按下面格式在屏幕显示和存入一个文本文件,
seed [0.0,0.1) [0.1,0.2) … [0.9,1.0) DL
T[1,0] T[1,1] T[1.2] … T[1,10] DL[1]
: : : … : :
: : : … : :
T[10,0] T[10,1] T[10,2] … T[10,10] DL[10]
AC AC[1] AC[2] … AC[10]
DC DC[1] DC[2] … DC[10]

3. 作图
参考相关书籍中有关作图的章节,了解如何在计算机屏幕上作图,掌握几种基本图形函数的使用。设计至少两块好看的花布,要求:
(1) 先用一屏显示花布的整体效果 ( 即在一屏中至少有2*2个、最好3*3个基本图形);再用一屏显示花布设计的基本图形。
(2)设计不少于10种基本图素,然后利用随机数产生图素的随机组合以及背景色,随机设计花布 (基本图素的选择、位置、大小和填色都是随机的)。

4. 数值积分
利用梯形求积分公式,采用变步长的方法,编写一个通用的求积分的函数,要求被积函数f
(x) 以函数类形变量出现在积分函数说明的形式参数表中。梯形求积分公式如下:
其中n从2开始,逐次加倍,直到精度满足要求为止。为检验你的程序和结果,至少对已知结
果的两个函数:f1(x)=(1-x2)1/2从 -1到1积分;f2(x)=e-x从 0到1积分。

5. 递归
用递归算法求Fibonacci级数的第n项,

6. 编制一个桥牌发牌的程序
要求能在屏幕上按东、西、南、北家和花色如下显示(大牌在前):

7. 人工智能
模拟人机对弈的井字游戏,在井字划分的九个空位上,轮流画O和′,谁最先使自己的三个O或′在一条直线上(包括对角线),谁就盈了。要求程序可以选择是两人对垒,还是人与计算机对垒或计算机自己下棋。两人对垒要求计算机能够判断每步棋是否合法,并能裁决谁是胜方;计算机下棋要求有一定的智能 (即计算机不是随机下棋,而是根据对方和自己棋子的位置决定最好的下法)。


8. 计算机模拟(管理信息系统专业必做题)
编写一个经典游戏--俄罗斯方块,其中的方块用四个正方形组成一个基本单元,基本单元有7种组合:
要求:
l 整个可操作区域是由13行9列个正方形组成的矩形
l 每个基本单元除了显示不同的形状外,还要用不同的颜色来区分
l 每次产生的方块形状是随机的
l 用户可选择是否预先观察下一方块
l 用光标键的←→在左右方向移动方块,用光标键↓快速落下方块,用字母键z和x来沿顺时
针和逆时针方向旋转方块
l 每当填满一行后应消除该行,并给玩家加10分
l 尽可能用多媒体形式表现

9. 字处理软件Winword 练习
每人选择一篇文章(不得重复),完成2至3页内容的输入和排版。其中必须包含有各级标题(
至少3级)、文字、图、表、公式等,要求:
l 用Visio绘制其中图
l 使用样式来设置格式
? 标题1:2号隶书加粗居中,段前12磅,段后12磅;
标题2:3号宋体加粗,左对齐,段前6磅,段后12磅;
标题3:小3号宋体加粗,首行缩进0.85厘米,段前6磅,段后6磅
? 各级标题自动编号依次为1,1.1,1.1.1
? 各级标题的后续段落为正文
? 正文为5号宋体,行间距为18磅,首行缩进0.85厘米,英文为Times New Roman
l 自动生成目录
l 公式用Equation3.0生成
二、其它练习
在必做题完成后,可进行下面练习:
1、 Microsoft Office软件; 2、PhotoShop; 3、数据库;
上机安排时间表 (如遇变化,另行通知)
日 期 上机班级 辅导教师
第十九周 周一 99301~99303 柏琳
周二 99304~99305 胡桃
周三 99306~99307 赵蔚
周四 99301~99303 柏琳
周五 99304~99305 胡桃
第二十周 周一 99306~99307 赵蔚
周二 99301~99303 柏琳
周三 99304~99305 胡桃
周四 99306~99307 赵蔚
周五 全体检查 忻展红,柏琳,胡桃,赵蔚
成绩评定方法:
1、 百分制,按题检查记分,综合评分;
2、 考勤将影响综合评分(必须完成前6个单元);
3、 界面友好,输出结果显示安排合理可获加分因素;
4、 独立完成、越早完成检查可获加分因素。
--
202.117.11.217 SQL2000-std
 
???!!!***###
 
那里上课,要钱吗?
 
干嘛呀?
严肃点!
 
自己做吧。没有人帮你做的。
 
我从来没有让人帮我完成的意思;
我觉得贴个帖子 引起大家探求的欲望;
互相学习;共同进步;
(白马小将:请勿灌水,无聊)
 
那你又不说清楚?
我还以为你要人帮忙呢
并且又没有分,我灌水又有何意思呢?
 
一般了,跟评级的差别不大。
 
白马小将:

这里发帖子还要揭露心路历程?
没分我还问这么多问题?
“我灌水又有何意思呢”----->回答不了!

其他人请继续(有兴趣的话)
 
第八题我小学六年级时做过!
 
排序的第二个什么 k 桶法适用于外排序。内排序用这个方法肯定是大脑漏水。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
832
DelphiTeacher的专栏
D
后退
顶部