文档库 最新最全的文档下载
当前位置:文档库 › 回文判断实验报告

回文判断实验报告

回文判断实验报告
回文判断实验报告

回文判断实验报告

一.实验题目:回文判断

二.实验目的:

对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如“abba”是回文,而“abab”不是回文。

三.实验需求:

1.数据从键盘读入;

2.输出要判断的字符串;

3.利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”否则输出“No”

四.主要实现函数

(1)建立顺序栈存储结构

typedef struct { }

(2)初始化

int initstack(Sqstack &s,int maxsize)

(3)入栈

int enstack(Sqstack &s, char e)

(4)出栈

int popstack(Sqstack &s,char &e)

(5)判断是否为回文

int main()

{

int r; //用于判断是否为回文

Sqstack L,Q; //定义两个栈

initstack(L,20);

initstack(Q,20);

int l; //用于记录输入字符的长度cout<<"请输入字符串长度";

cin>>l;

if(l<=0)exit(1);

cout<<"输入字符"<

for(int i=1;i<=l;i++) //输入字符

{

char p;

cin>>p;

enstack(L,p); //入栈L

}

cout<

for(int m=1;m<=l;m++)

{

char f;

f=getstack(L,m); //从栈L中取元素,在入栈Q enstack(Q,f);

}

for(int n=1;n<=l;n++)

{

char a,b; //从栈L Q 出栈,比较

popstack(L,a);

popstack(Q,b);

if(a!=b)r=1;

else r=2;

}

if(r==1)cout<<"no"<

五.源程序

#include

using namespace std;

typedef char SElemType;

typedef struct {

SElemType *base;

SElemType *top;

int stacksize;

}Sqstack;

int initstack(Sqstack &s,int maxsize) / {

s.base=new SElemType[maxsize];

if(!s.base)exit(1);

s.top=s.base;

s.stacksize=maxsize;

return 0;

}

int enstack(Sqstack &s, char e)

{

if(s.top-s.base==s.stacksize)exit(1);

*s.top=e;

s.top++;

return 0;

}

int popstack(Sqstack &s,char &e)

{

if(s.top==s.base)exit(1);

e=*--s.top;

return 0;

}

int getstack(Sqstack &s,int i) {

SElemType *p;

p=s.top;

for(int j=1;j<=i;j++)

{p--;}

return *p;

}

int main()

{

int r;

Sqstack L,Q;

initstack(L,20);

initstack(Q,20);

int l;

cout<<"请输入字符串长度"; cin>>l;

if(l<=0)exit(1);

cout<<"输入字符"<

{

char p;

cin>>p;

enstack(L,p);

}

cout<

for(int m=1;m<=l;m++)

{

char f;

f=getstack(L,m);

enstack(Q,f);

}

for(int n=1;n<=l;n++)

{

char a,b;

popstack(L,a);

popstack(Q,b);

if(a!=b)r=1;

else r=2;

}

if(r==1)cout<<"no"<

else if(r==2)cout<<"yes"<

else cout<<"发生错误"<

cout<<"继续判断输入Y,退出输入N"<

char d;cin>>d;

if(d=='y'||d=='Y')main();

else return 0;

}

五.各功能的运行界面:

(1)主界面:

(2)输入1,2,3,4四个字符判断是否是回文,运行界面如下:

(3)设置字符串长度为5,a,s,d,s,a,判断是否为回文,运行界面如下:

回文判断教学总结

实验报告 系部计算机系I班级I I学号I I姓名课程名称—数据结构I实验日期实验名称回文判断成绩 实验目的: 掌握栈的基本操作:入栈、出栈等在链式或顺序存储结构上的实现。 实验条件:PC机一台、VC++6.0编译环境 实验内容与算法思想: 内容: 输入一字符串判断其是否为回文。 算法思想: 1. 算法中主要用到的函数 ①void mai n() //主函数 ②int push_seqstack(Seqstack *s,char x) // 进栈 ③in t pop_seqstack(Seqstack *s) // 出栈 ④int gettop_seqstack(Seqstack *s) 〃取栈顶元素 ⑤int Ishuiwe n( char *s) 〃判断是否是回文 2. 函数之间的调用关系 函数之间的调用关系如图1所示:

图1函数之间的调用关系 运行结果: 运行程序输入一段字符串,运行不同的结果如图2、3所示: 图2 不是回文的判断结果 实验总结: 通过前两次的实验,使我对C语言和数据结构有许多认识。因此,这次实验 在做起来时多少有点思路,但是在实验室当中还是遇到了许多不会的问题,如回文的判断思路、以及函数的调用等等,不过这些问题在老师和同学的帮助下基本完成了这次实验。这次实验让我学到了很多知识,让我对原来所学的又重新复习了一遍,同时还学到了许多其他新知识。 附:源程序: #in clude #in clude #defi ne OK 1 #defi ne ERROR 0 #defi ne Maxsize 100 typedef struct { char elem[Maxsize]; int top; }Seqstack;

R语言判别分析实验报告

R语言判别分析实验报告 班级:应数1201 学号: 姓名:麦琼辉 时间:2014年11月28号 1 实验目的及要求 1)了解判别分析的目的和意义; 2)熟悉R语言中有关判别分析的算法基础。 2 实验设备(环境)及要求 个人计算机一台,装有R语言以及RStudio并且带有MASS包。 3 实验内容 企业财务状况的判别分析 4 实验主要步骤 1)数据管理:实验对21个破产的企业收集它们在前两年的财务数据,对25个 财务良好的企业也收集同一时期的数据。数据涉及四个变量:CF_TD(现金/总债务);NI_TA(净收入/总资产);CA_CL(流动资产/流动债务);CA_NS (流动资产/净销售额),一个分组变量:企业现状(1:非破产企业,2:破产企业)。 2)调入数据:对数据复制,然后在RStudio编辑器中执行如下命令。 case5=read.table(‘clipboard’,head=T) head(case5) 3)Fisher判别效果(等方差,线性判别lda):采用Bayes方式,即先验概率 为样本例数,相关的RStudio程序命令如下所示。 library(MASS) ld=lda(G~.,data=case5);ld #线性判别 ZId=predict(ld) addmargins(table(case5$G,ZId$class)) 4)Fisher判别效果(异方差,非线性判别--二次判别qda):再次采用Bayes 方式,相关的RStudio程序命令如下所示。

library(MASS) qd=qda(G~.,data=case5);qd #二次判别 Zqd=predict(qd) addmargins(table(case5$G ,Zqd$class)) 5 实验结果 表1 线性判别lda 效果 原分类 新分类 1 2 合计 1 24 1 25 2 3 18 21 合计 27 19 46 符合率 91.30% 由表1和表2可知,qda (二次判别---非线性判 别)的效果比lda (一次判别)要好。 6 实验小结 通过本次实验了解了判别分析的目的和意义,并熟悉R 语言中有关判别分析的算法基础。 表2 二次判别qda 效果 原分类 新分类 1 2 合计 1 24 1 25 2 2 19 21 合计 26 20 46 符合率 93.50%

数据结构实验一 实验报告

班级::学号: 实验一线性表的基本操作 一、实验目的 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 二、实验容 定义一个包含学生信息(学号,,成绩)的顺序表和链表(二选一),使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据进行查找,返回此学生的学号和成绩; (4) 根据指定的位置可返回相应的学生信息(学号,,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录; (7) 统计表中学生个数。 三、实验环境 Visual C++ 四、程序分析与实验结果 #include #include #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2

typedef int Status; // 定义函数返回值类型 typedef struct { char num[10]; // 学号 char name[20]; // double grade; // 成绩 }student; typedef student ElemType; typedef struct LNode { ElemType data; // 数据域 struct LNode *next; //指针域 }LNode,*LinkList; Status InitList(LinkList &L) // 构造空链表L { L=(struct LNode*)malloc(sizeof(struct LNode)); L->next=NULL; return OK;

回文判断实验二

回文判断实验二

洛阳理工学院实验报告 系别计算机系班级B13053 学号B13053235 姓名李登辉 2 课程名称数据结构实验日期2014.3.28 实验名称栈和队列的基本操作成绩 实验目的: 熟悉掌握栈和队列的特点,掌握与应用栈和队列的基本操作算法,训练和提高结构化程序设计能力及程序调试能力。 实验条件: 计算机一台,Visual C++6.0

实验内容: 1.问题描述 利用栈和队列判断字符串是否为回文。称正读与反读都相同的字符序列为“回文”序列。要求利用栈和队列的基本算法实现判断一个字符串是否为回文。栈和队列的存储结构不限。 2.数据结构类型定义 typedef struct { char elem[MAX]; int top; }SeqStack; 顺序栈 3.模块划分 void InitStack(SeqStack *S):栈初始化模块, int Push(SeqStack *S,char x,int cnt):入栈操作 int Pop(SeqStack * S,char * x):出栈操作 void InitQuene(SeqQuene *Q):队列初始化 int EnterQuene(SeqQuene *Q,char x,int cnt):入队操作 int DeleteQuene(SeqQuene *Q,char *x,int cnt):出队操作 void main():主函数 4.详细设计 #include #include #define MAX 50 #define FALSE 0 #define TURE 1//定义栈 typedef struct { char elem[MAX]; int top; }SeqStack; //定义循环队列 typedef struct { char element[MAX]; int front; int rear; }SeqQuene; //初始化栈

R语言判别分析实验报告

R语言判别分析实验报 告 GE GROUP system office room 【GEIHUA16H-GEIHUA GEIHUA8Q8-

R语言判别分析实验报告 班级:应数1201 学号: 姓名:麦琼辉 时间:2014年11月28号 1 实验目的及要求 1)了解判别分析的目的和意义; 2)熟悉R语言中有关判别分析的算法基础。 2 实验设备(环境)及要求 个人计算机一台,装有R语言以及RStudio并且带有MASS包。 3 实验内容 企业财务状况的判别分析 4 实验主要步骤 1)数据管理:实验对21个破产的企业收集它们在前两年的财务数据,对25个财 务良好的企业也收集同一时期的数据。数据涉及四个变量:CF_TD(现金/总债务);NI_TA(净收入/总资产);CA_CL(流动资产/流动债务);CA_NS(流动资产/净销售额),一个分组变量:企业现状(1:非破产企业,2:破产企业)。 2)调入数据:对数据复制,然后在RStudio编辑器中执行如下命令。

case5=read.table(‘clipboard’,head=T) head(case5) 3)Fisher判别效果(等方差,线性判别lda):采用Bayes方式,即先验概率为 样本例数,相关的RStudio程序命令如下所示。 library(MASS) ld=lda(G~.,data=case5);ld #线性判别 ZId=predict(ld) addmargins(table(case5$G,ZId$class)) 4)Fisher判别效果(异方差,非线性判别--二次判别qda):再次采用Bayes方 式,相关的RStudio程序命令如下所示。 library(MASS) qd=qda(G~.,data=case5);qd #二次判别 Zqd=predict(qd) addmargins(table(case5$G,Zqd$class)) 5 实验结果 表1 线性判别lda效果 原分类新分类

回文串实验报告

回文串实验报告 课程名称:数据结构 实验名称:单链表 学生姓名:杜克强 学生学号: 201207092427

实验一回文串的基本操作及其应用 一、实验目的 1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际中灵活应用。 2、掌握栈和队列的特点,即后进先出和先进先出的原则。 3、掌握栈和队列的基本运算,如:入栈与出栈,入队与出队等运算在顺序 存储结构和链式存储结构上的实现。 二、实验内容和要求 [问题描述] 对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如“abba”是回文,而“abab”不是回文。 [基本要求] (1)数据从键盘读入; (2)输出要判断的字符串; (3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”,否则输出“No”。 [测试数据] 由学生任意指定。 三、实验步骤 1.需求分析 本演示程序用C语言编写,完成对一个字符串是否是回文字符串的判断 ①输入一个任意的字符串; ②对输入的字符串进行判断是否为回文串;

③输出判断结果; ④测试数据: A.依次输入“abccba”,“asddas”等数据; B.输出判断结果“Yes”,“No”等 四、算法设计 1、算法思想: 把字符串中的字符逐个分别存储到队列和堆栈中,然后逐个出队和出栈并比较出队列的数据元素和退栈的数据元素是否相等,若相等则是会文,否则不是。 2、模块设计 (1)int Palindrome_Test()判断字符序列是否为回文串; (2)Status main()主函数; (3)Status CreatStack(SqStack &S)创建一个栈; (4)Status Push(SqStack &S,SElemType e)入栈; (5)Status Pop(SqStack &S ,SElemType &e)出栈; (6)Status CreatQueue(LinkQueue &Q)创建一个队列; (7)Status EnQueue(LinkQueue &Q,QElemType e)入队; (8)Status DeQueue(LinkQueue &Q,QElemType &e)出队;

实验1实验报告

实验一词法分析 班级:计科12-3 学号:08123282 姓名:樊鑫 一.实验目的 1、学会针对DFA转换图实现相应的高级语言源程序。 2、深刻领会状态转换图的含义,逐步理解有限自动机。 3、掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理。 二.实验内容 TINY计算机语言的编译程序的词法分析部分实现。 从左到右扫描每行该语言源程序的符号,拼成单词,换成统一的内部表示(token)送给语法分析程序。 为了简化程序的编写,有具体的要求如下: (1)数仅仅是整数。 (2)空白符仅仅是空格、回车符、制表符。 (3)代码是自由格式。 (4)注释应放在花括号之内,并且不允许嵌套 三.实验要求 要求实现编译器的以下功能: (1)按规则拼单词,并转换成二元式形式 (2)删除注释行 (3)删除空白符 (空格、回车符、制表符) (4)列表打印源程序,按照源程序的行打印,在每行的前面加上行号,并且打印出每行包含的记号的二元形式 (5)发现并定位错误 ,词法分析进行具体的要求: (1)记号的二元式形式中种类采用枚举方法定义;其中保留字和特殊字符是每个都一个种类,标示符自己是一类,数字是一类;单词的属性就是表示的字符串值。

(2)词法分析的具体功能实现是一个函数GetToken(),每次调用都对剩余的字符串分析得到一个单词或记号识别其种类,收集该记号的符号串属性,当识别一个 单词完毕,采用返回值的形式返回符号的种类,同时采用程序变量的形式提供 当前识别出记号的属性值。这样配合语法分析程序的分析需要的记号及其属性, 生成一个语法树。 (3)标示符和保留字的词法构成相同,为了更好的实现,把语言的保留字建立一个表格存储,这样可以把保留字的识别放在标示符之后,用识别出的标示符对比 该表格,如果存在该表格中则是保留字,否则是一般标示符。 四.实验程序 #include #include #include #include #include using namespace std; enum WordType {WRONG, NUMBER, BIAOSHI, IF, THEN, ELSE, END, REPEAT, UNTIL, //9 READ, WRITE, PLUS, SUBTRACT, MULTIPLY, DIVIDEY, EQUAL, LESSTHAN, COLON,//18 ASSIGNMENT, LINE_FEED, SPACE, TAB, BRACKET_L, BRACKET_R}; //24 enum CharType {ALPHABET, OTHER}; enum WrongType {ZERO, ALP_NUM, NUM_ALP, UNLEAGL_S, NO_MA TCH, UNKNOW}; char *Words [] = {"wrong", "number", "biaoshi", "if", "then", "else", "end", "repeat", "until", //9 "read", "write", "+", "-", "*", "/", "=", "<", ":",//18 ":=", "\n", " ", " ", "{", "}"}; //24 typedef struct { char *str; int wordtype; }Two; char ArrayChar[100], cbuffer; int i=-1, numline = 1, wordtype; string LineChar; Two T; ifstream fp("source.txt",ios::in); int main () { void HandleAlphabet(); void HandleNumber (); void HandleOther (); if (!fp) cout<<"文件打开错误!"<

R语言判别分析实验报告

R语言判别分析实验报告 The latest revision on November 22, 2020

R语言判别分析实验报告 班级:应数1201 学号: 姓名:麦琼辉 时间:2014年11月28号 1实验目的及要求 1)了解判别分析的目的和意义; 2)熟悉R语言中有关判别分析的算法基础。 2实验设备(环境)及要求 个人计算机一台,装有R语言以及RStudio并且带有MASS包。 3实验内容 企业财务状况的判别分析 4实验主要步骤 1)数据管理:实验对21个破产的企业收集它们在前两年的财务数据,对25 个财务良好的企业也收集同一时期的数据。数据涉及四个变量:CF_TD(现金/总债务);NI_TA(净收入/总资产);CA_CL(流动资产/流动债务); CA_NS(流动资产/净销售额),一个分组变量:企业现状(1:非破产企业,2:破产企业)。 2)调入数据:对数据复制,然后在RStudio编辑器中执行如下命令。 case5=read.table(‘clipboard’,head=T) head(case5) 3)Fisher判别效果(等方差,线性判别lda):采用Bayes方式,即先验概 率为样本例数,相关的RStudio程序命令如下所示。 library(MASS) ld=lda(G~.,data=case5);ld#线性判别 ZId=predict(ld) addmargins(table(case5$G,ZId$class)) 4)Fisher判别效果(异方差,非线性判别--二次判别qda):再次采用

Bayes 方式,相关的RStudio 程序命令如下所示。 library(MASS) qd=qda(G~.,data=case5);qd#二次判别 Zqd=predict(qd) addmargins(table(case5$G,Zqd$class)) 5实验结果 表1线性判别lda 效果 原分类 新分类 12合计 1 24 1 25 2 3 18 21 合计 27 19 46 符合率 91.30% 由表1和表 2可知,qda (二次判别---非线 性判别)的效果比lda (一次判别)要好。 6实验小结 通过本次实验了解了判别分析的目的和意义,并熟悉R 语 言中有关判别分析的算法基础。 表2二次判别qda 效果 原分类 新分类 12合计 1 24 1 25 2 2 19 21 合计 26 20 46 符合率 93.50%

求回文子串 O(n) manacher算法

求回文子串O(n) manacher算法 回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 回文子串,顾名思义,即字符串中满足回文性质的子串。 经常有一些题目围绕回文子串进行讨论,比如HDOJ_3068_最长回文,求最长回文子串的长度。朴素算法是依次以每一个字符为中心向两侧进行扩展,显然这个复杂度是O(N^2)的,关于字符串的题目常用的算法有KMP、后缀数组、AC自动机,这道题目利用扩展KMP 可以解答,其时间复杂度也很快O(N*logN)。但是,今天笔者介绍一个专门针对回文子串的算法,其时间复杂度为O(n),这就是manacher算法。 大家都知道,求回文串时需要判断其奇偶性,也就是求aba和abba的算法略有差距。然而,这个算法做了一个简单的处理,很巧妙地把奇数长度回文串与偶数长度回文串统一考虑,也就是在每个相邻的字符之间插入一个分隔符,串的首尾也要加,当然这个分隔符不能再原串中出现,一般可以用‘#’或者‘$’等字符。例如: 原串:abaab 新串:#a#b#a#a#b# 这样一来,原来的奇数长度回文串还是奇数长度,偶数长度的也变成以‘#’为中心的奇数回文串了。 接下来就是算法的中心思想,用一个辅助数组P记录以每个字符为中心的最长回文半径,也就是P[i]记录以Str[i]字符为中心的最长回文串半径。P[i]最小为1,此时回文串为Str[i]本身。 我们可以对上述例子写出其P数组,如下

新串:# a # b # a # a # b # P[] : 1 2 1 4 1 2 5 2 1 2 1 我们可以证明P[i]-1就是以Str[i]为中心的回文串在原串当中的长度。 证明: 1、显然L=2*P[i]-1即为新串中以Str[i]为中心最长回文串长度。 2、以Str[i]为中心的回文串一定是以#开头和结尾的,例如“#b#b#”或“#b#a#b#”所以L减去最前或者最后的‘#’字符就是原串中长度的二倍,即原串长度为(L-1)/2,化简的P[i]-1。得证。 依次从前往后求得P数组就可以了,这里用到了DP(动态规划)的思想,也就是求P[i]的时候,前面的P[]值已经得到了,我们利用回文串的特殊性质可以进行一个大大的优化。我先把核心代码贴上: for(i=1;ii) { p[i]=Min(p[2*id-i],MaxId-i); } else { p[i]=1; } while(a[i+p[i]]==a[i-p[i]]) { p[i]++; } if(p[i]+i>MaxId) { MaxId=p[i]+i; id=i; } }

实验1实验报告-

实验1 Windows编程基础实验报告 一、实验目的和要求 (1)创建一个Win32应用程序Ex_SDK,在程序中构造一个编辑框控件和一个按钮。 (2)编辑框用于输入一元二次方程的系数,当单击“计算”按钮,获取方程系数得的根通过TextOut显示在窗口客户区中。 二、实验环境 操作系统:Windows 2000 编译器:Visual C++ 6.0的开发环境 三、实验准备和说明 (1)具备知识:简单的SDK编程基础。 (2)准备本次上机所需要的程序。 (3)创建本次实验工作文件夹“…\Visual C++程序\实验\实验1” 四、实验内容和步骤 1.启动Visual C++ 6.0 打开计算机,启动Visual C++ 6.0系统。 2.创建工程并添加代码 ①选择“文件”→“新建”菜单命令,打开应用程序向导,显示出“新建”对话框。单击“工程”标签,从列表框中选中Win32 Application(Win32 应用程序)项。在工程名称框中输入Win32应用程序项目名称Ex_SDK。单击浏览按钮...将工程定位到文件夹“…\Visual C++ 6.0程序\实验\实验1”。 ②单击“确定”按钮继续。在向导第一步对话框中,选中An empty project(一个空的工程)项。单击“完成”按钮,系统将显示AppWizard(应用程序向导)的创建信息,单击“确定”按钮,系统将自动创建此应用程序。 ③再次选择“文件”→“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C++ Source File项,在右边的“文件”下的编辑框中输入Ex_SDK.cpp,单击“确定”按钮。 ④在打开的文档窗口中输入下面的代码: #include #include #include // 求一元二次方程的根,函数返回根的个数 int GetRoot(float a, float b, float c, double *root) { double delta, deltasqrt; delta = b*b - 4.0 * a * c; if (delta<0.0) return 0; // 无根 deltasqrt = sqrt(delta);

数据结构实验二(栈和队列)

实验二栈和队列的基本操作及其应用 一、实验目的 1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际中灵活应用。 2、掌握栈和队列的特点,即后进先出和先进先出的原则。 3、掌握栈和队列的基本运算,如:入栈与出栈,入队与出队等运算在顺序 存储结构和链式存储结构上的实现。 二、实验内容 本次实验提供4个题目,每个题目都标有难度系数,*越多难度越大,学生 可以根据自己的情况任选一个! 题目一:回文判断(*) [问题描述] 对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如 “abba”是回文,而“abab”不是回文。 [基本要求] (1)数据从键盘读入; (2)输出要判断的字符串; (3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出 “Yes”,否则输出“No”。 [测试数据] 由学生任意指定。 题目二:顺序栈和循环队列基本操作(*) [基本要求] 1、实现栈的基本操作 六项基本操作的机制是:初始化栈:init_stack(S);判断栈空:stack_empty(S);取栈顶元素:stack_top(S,x);入栈:push_stack(S,x);出栈:pop_stack(S);判断栈满:stack_full(S) 2、实现队列的基本操作 六项基本操作的机制是:初始化队列:init_queue(Q);判断队列是否为空:queue_empty(Q);取队头元素:queue_front(Q,x);入队:enqueue(Q,x);出队:outqueue(Q,x);判断队列是否为满:queue_full(Q) [测试数据]

由学生任意指定。 题目三:商品货架管理(**) [问题描述] 商店货架以栈的方式摆放商品。生产日期越近的越靠近栈底,出货时从栈顶取货。一天营业结束,如果货架不满,则需上货。入货直接将商品摆放到货架上,则会使生产日期越近的商品越靠近栈顶。这样就需要倒货架,使生产日期越近的越靠近栈底。 [基本要求] 设计一个算法,保证每一次上货后始终保持生产日期越近的商品越靠近栈底。 [实现提示] 可以用一个队列和一个临时栈作为周转。 [测试数据] 由学生任意指定。 三、实验前的准备工作 1、掌握栈的逻辑结构和存储结构。 2、熟练掌握栈的出栈、入栈等操作。 3、掌握队列的逻辑结构和存储结构。 4、熟练掌握队列的出队、入队等操作 四、实验报告要求 1、实验报告要按照实验报告格式规范书写。 *2、写出算法设计思路。 3、实验上要写出多批测试数据的运行结果。 4、结合运行结果,对程序进行分析。 题目四:Rails(ACM训练题) Description There is a famous railway station in PopPush City. Country there is incredibly hilly. The station was built in last century. Unfortunately, funds were extremely limited that time. It was possible to establish only a surface track. Moreover, it turned out that the

判别分析实验报告spss

一、实验目的及要求: 1、目的 用SPSS软件实现判别分析及其应用。 2、内容及要求 用SPSS对实验数据利用Fisher判别法和贝叶斯判别法,建立判别函数并判定宿州、广安等13个地级市分别属于哪个管理水平类型。 二、仪器用具: 三、实验方法与步骤: 准备工作:把实验所用数据从Word文档复制到Excel,并进一步导入到SPSS 数据文件中,同时,由于只有当被解释变量是属性变量而解释变量是度量变量时,判别分析才适用,所以将城市管理的7个效率指数变量的变量类型改为“数值(N)”,度量标准改为“度量(S)”,以备接下来的分析。 四、实验结果与数据处理: 表1 组均值的均等性的检验 Wilks 的 Lambda F df1df2Sig. 综合效率标准指数.582264.000 经济效率标准指数.406264.000 结构效率标准指数.954264.218 社会效率标准指数.796264.001 人员效率标准指数.342264.000 发展效率标准指数.308264.000 环境效率标准指数.913264.054 表1是对各组均值是否相等的检验,由该表可以看出,在的显著性水平上我们不能拒绝结构效率标准指数和环境效率标准指数在三组的均值相等的假设,即认为

除了结构效率标准指数和环境效率标准指数外,其余五个标准指数在三组的均值是有显著差异的。 表2 对数行列式 group秩对数行列式 16 26 36 汇聚的组内6 打印的行列式的秩和自然对数是组协方差矩阵的秩和自然对数。 表3 检验结果 箱的 M F近似。 df142 df2 Sig..000 对相等总体协方差矩阵的零假设进行检验。 以上是对各组协方差矩阵是否相等的Box’M检验,表2反映协方差矩阵的秩和行列式的对数值。由行列式的值可以看出,协方差矩阵不是病态矩阵。表3是对各总体协方差阵是否相等的统计检验,由F值及其显著水平,在的显著性水平下拒绝原假设,认为各总体协方差阵不相等。 1)Fisher判别法: 图一

回文判断实验报告

回文判断实验报告 一.实验题目:回文判断 二.实验目的: 对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如“abba”是回文,而“abab”不是回文。 三.实验需求: 1.数据从键盘读入; 2.输出要判断的字符串; 3.利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”否则输出“No” 四.主要实现函数 (1)建立顺序栈存储结构 typedef struct { } (2)初始化 int initstack(Sqstack &s,int maxsize) (3)入栈 int enstack(Sqstack &s, char e) (4)出栈 int popstack(Sqstack &s,char &e) (5)判断是否为回文 int main() { int r; //用于判断是否为回文 Sqstack L,Q; //定义两个栈

initstack(L,20); initstack(Q,20); int l; //用于记录输入字符的长度cout<<"请输入字符串长度"; cin>>l; if(l<=0)exit(1); cout<<"输入字符"<>p; enstack(L,p); //入栈 L } cout< using namespace std; typedef char SElemType; typedef struct { SElemType *base; SElemType *top; int stacksize;

实验1实验报告格式

实验1实验报告格式 《计算机图形学》实验1实验报告 实验题目:用户坐标、视图坐标、Java awt坐标概念的建立和应用 实验内容:掌握用户坐标、视图坐标、Java awt坐标概念,掌握三类坐标的转换算法。编写自己的算法函数,并形成Java语言程序包。编写程序调用验证之。 参考程序:有两个示范程序MyTest.java和MyLineDrawApplet.java 基本概念: 用户坐标:是独立于设备的逻辑坐标,可以是用户用来定义设计对象的各种坐标。 应用程序使用该坐标系:所有传给Java 2D渲染过程的坐标都是指用户坐标。例如下面程序中的默认用户坐标的范围是X轴从-1到1,Y轴也是凑够-1到1。 视图坐标:是设备相关的坐标,随目标渲染设备不同而不同。下面程序中定义的视图坐标的缺省值为(0,0)和(1,1)。 Java awt坐标:使用java.awt时使用的坐标,即窗口显示图像时的边界坐标。 填充:这个过程可以抽象的理解为以已知的线为中心,向周围扩展像素,然后对这些像素所在的方块进行着色。 将用户坐标转换为视图坐标实际上是将独立于设备的逻辑坐标转换为设备相关的坐标,将视图坐标转化为A WT坐标就是将视图坐标按照显示窗口的大小进行缩放。 算法设计:(详细叙述自己设计程序的功能、算法及实现) 程序的功能: 可以根据传入的用户坐标进行视图坐标、A WT坐标之间的转换,其反向转换同理也可以实现,即将转换的方法逆过去即可。此外,程序还可以进行图形的绘画和填充,比如矩形、椭圆、多边形等。 算法及其实现函数: 用户坐标到视图坐标的转换:对于相应的用户坐标应用数学中的平移与放缩,就可以得到视图坐标。具体方法如下:在用户坐标系下,设矩形窗口的左下角坐标为(Ux1,Uyb), 右上角为(Uxr,Uyt),视图坐标系下的两个点坐标分别为(Vx1,V yb)和(Vxr,V yt), 则视图坐标的表达式为:(Xu,Y u)是已知的用户坐标,(Xv ,Y v)是要求的视图坐标Xv=aXu+b Y v=cY u+d 其中:a=(Vxr-Vxl)/(Uxr-Uxl) b=Vxl-aUxl c=(V yt-V yb)/(Uyt-Uyb) d=V yb-cUyb //将用户坐标的点转换到视图坐标 public double view_x(double x) { double s=(x-user_i_x)/(user_a_x- user_i_x); double t=view_i_x[currentV iew]+s* //坐标的平移及压缩 (view_a_x[currentView]-view_i_x[currentV iew]); return t; } public double view_y(double y) { double s=(y-user_i_y)/(user_a_y-user_i_y); double t=view_i_y[currentV iew]+s* //坐标的平移及压缩 (view_a_y[currentView]-view_i_y[currentV iew]); return t; } 视图坐标到A WT坐标的转换:由于视图坐标在0到1之间,因此将显示窗口的宽和高

用循环语句打印一个乘法表判断回文数(逆序排列后得到数和原数相同)

福建农林大学实验报告 实验一 Java开发环境 一、实验目的: 1、掌握分支、循环语句的使用。 二、实验内容: 1、用循环语句打印一个99乘法表。 2、判断回文数(逆序排列后得到的数和原数相同)。 三、实验要求: 1、打印的乘法表应该呈现阶梯状。 2、给定一个1-99999之间的整型数,程序可以判断它的位数,并判断是否是回文数。 3、实验报告给出完整代码。 四、算法描述及实验步骤 先定义两个变量i和j然后初始化值为1,由于题目的条件,所以i<+9而j<=I,然后经过输出语句System.out.print (j+"*"+i+"="+i*j+" ");可将i和j值进行相乘,最后用输出语句改变下格式就可以了。 五、调试过程及实验结果 1 算出来的并没有按照表格输出 改System.out.println (" "); 中println后的ln就可以改变换行了, 2

六、总结 通过第一小题的练习,让我加强了对for循环语句和输出函数的使用。 经过第二小题的练习,我懂得了什么是回文数,并且用.reverse(),反转字符串来反转,然后将反转后的数字和之前的数字进行比较。 七、附录(代码): 9*9乘法表: class Test{ public static void main (String[] args) { for(int i=1;i<=9;i++) { for(int j=1;j<=i;j++) { System.out.print (j+"*"+i+"="+i*j+" "); } System.out.println (" "); } } } 判断回文数: class Test { public static void main(String[] args) { String str = "1234554321"; boolean huiwenshu = new StringBuilder(str).reverse().toString().equals(str); System.out.println (str); System.out.println(huiwenshu); } }

多元统计分析实验报告判别分析

页眉 2015——2016学年第一学期 实验报告 课程名称:多元统计分析 实验项目:判别分析 设计性□验证性□实验类别:综合性□√专业班级:

姓名:学号: 实验地点:统计与金融创新实验室(新60801) 实验时间: 指导教师:曹老师成绩: 数学与统计学院实验中心制页脚 一、实验目的统计《spss 让学生掌握判别分析的基本步骤和分析方法;学习 的内容,掌握一般判别分析与逐分析从入门到精通》P307-P320步判别分析方法。 二、实验内容,掌》应用《胃病患者的测量数据》和《表征企业类型的数据.sav、1统计分析从spss握一般判别分析与逐步判别分析方法。数据来源于《章的数据。入门到精通数据文件》第12的数据进行分析,数据见文件《何晓群多元统计2、参考教材例4-2 》中的例4-2new。)分析(数据三、实验方案(程序设计说明) 四、程序运行结果1. (1) 分析案例处理摘要未加权案例N 百分比 93.3 14 有效 6.7 缺失或越界组代码1 .0 至少一个缺失判别变量0 .0

排除的缺失或越界组代码还有至少0 一个缺失判别变量6.7 合计1 100.0 15 合计 组统计量 1 N(列表状态)类别均值标准差有效的未加权的已加权的5.000 188.60 57.138 5 铜蓝蛋白5.000 16.502 5 150.40 蓝色反应胃癌患者5.000 5.933 5 尿吲哚乙酸13.80 5.000 13.323 5 中性琉化物20.00 4.000 47.500 4 铜蓝蛋白156.25 4.000 118.75 14.104 4 蓝色反应萎缩性胃炎4.000 1.732 4 尿吲哚乙酸7.50 4.000 8.386 4 中性琉化物14.50 5.000 33.801 5 铜蓝蛋白151.00 5.000 13.012 5 蓝色反应121.40 其他胃病5.000 1.871 5 尿吲哚乙酸5.00 5.000 5 中性琉化物8.00 7.314 14.000 14 铜蓝蛋白165.93 46.787 14.000 14 蓝色反应131.00 20.203 合计14.000 14 8.86 5.318 尿吲哚乙酸14.000 10.726 14

电机学实验1实验报告

实验报告 课程名称:电机学指导老师:史涔溦成绩:__________________实验名称:直流电动机实验实验类型:验证性实验同组学生姓名: 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1、进行电机实验安全教育和明确实验的基本要求 2、认识在直流电机实验中所用的电机、仪表、变阻器等组件 3、学习直流电动机的接线、起动、改变电机转向以及调速的方法 4、掌握用实验方法测取直流并励电动机的工作特性和机械特性 5、掌握直流并励电动机的调速方法 6、并励电动机的能耗制动 二、实验内容和原理 1、并励直流电动机起动实验 2、改变并励直流电动机转向实验 : 3、测取并励直流电动机的工作特性和机械特性 4、并励直流电动机的调速方法 三、主要仪器设备 1、直流电源(220V,3A,可调) 2、并励直流电动机 3、负载:测功机。与被测电动机同轴相连。 4、调节电阻。电枢调节电阻选取0-90欧,磁场调节电阻选取0—3000欧。 5、直流电压电流表。电压表为直流250V,电枢回路电流表量程,励磁回路电流表量程200mA。 四、操作方法与实验步骤 (1)并励直流电动机的起动实验 接线图: `

实验时,首先将电枢回路电阻调节到最大,因为起动初n=0,而端电压为额定值,如果电枢回路电阻过小那么会因电流过大而烧坏电机。其次应该Rf调节到最小,因为当电枢电流和电动势一定时,磁通量和转速是成反比的,如果磁场太弱,那么会造成很大的转速,从而造成危险。调节电源电压,缓缓启动电机,观察电动机的旋转方向是否符合负载的加载方向。最后逐步减小R1,实现分级起动,直到完全切除R1. 注意每次起动前,将测功机加载旋钮置0。实验完成后,将电压和测功机加载旋钮置0。 (2)改变并励直流电动机转向实验 改变转向,即改变导体的受力方向,则改变电枢电流或者磁场的方向都可以实现。因此对调励磁绕组或者电枢绕组的极性即可。重新起动,观察转向。 (3)测量并励直流电动机的工作特性和机械特性 1、完全起动电机并获取稳定转速,使得R1=0 2、将电动机调节到额定状态,调节电源电压测功机加载旋钮及磁场调节电阻R f ,至额定状态:U=U N , I=I N ,n=n N ,记下此时的I f ,即I fN 。 . 3、保持U=U N ,I f =I fN 不变,调测功机加载旋钮,逐渐减小电动机负载至最小,测I、n、T 2 。 (4)并励直流电动机的调速特性1、改变电枢电压调速 1) 按操作1起动后,切除电枢调节电阻R 1(R 1 =0)

判别分析实验报告

数学实验报告判别分析

一、实验目的 要求熟练掌握运用SPSS软件实现判别分析。 二、实验内容 已知某研究对象分为3类,每个样品考察4项指标,各类观测的样品数分别为7,4,6;另外还有2个待判样品分别为 第一个样品: =-=-== 18,214,316,456 x x x x 第二个样品: ==-== 192,217,318,4 3.0 x x x x 运用SPSS软件对实验数据进行分析并判断两个样品的分组。 三、实验步骤及结论 1.SPSS数据分析软件中打开实验数据,并将两个待检验样本键入,作为样本18和样本19。 2.实验分析步骤为: 分析→分类→判别分析 3.得到实验结果如下: (1)由表1,对相等总体协方差矩阵的零假设进行检验,Sig值为0.022<0.05,则拒绝原假设,则各分类间协方差矩阵相等。 由表2可得,函数1所对应的特征值贡献率已达到99.6%,说明样本数据均向此方向投影就可得到效果很高的分类,故只取函数1作为投影函数,舍去函数2不做分析。 表3为典型判别式函数的Wilks的Lambda检验,此检验中函数1的Wilks Lambda检验sig值为0.022<0.05,则拒绝原假设,说明函数1判别显著。

表4为求得的各典型函数判别式函数系数,由此表可以求得具体函数,得y=9.240+0.010x1+0.543x2+0.047x3-0.068x4。 由表5给出的组质心处的函数值,可以得到函数1的置信坐标为(-1.846,0.616,1.744)。

(2)关于两个待判样本的分组方法: 将样本1的因变量数据代入方程 y=9.240+0.010x1+0.543x2+0.047x3-0.068x4 求得y1=-1.498,分别减去上表中-1.846,0.616,1.744,取绝对值得0.348,0.882,0.246,则样本1为第1组; 同理可得,y2=1.571,分别减去上表中-1.846,0.616,1.744,取绝对值得 3.417,0.955,0.173,则样本2为第3组。 贝叶斯判别部分如下: 表6 表7为贝叶斯判别分析得到的分类函数系数表,可以得到3个分组各自的函数: y1=-223.305-0.074x1-19.412x2+4.549x3+1.582x4 y2=-199.884-0.045x1-18.097x2+4.661x3+1.414x4 y3=-190.041-0.040x1-17.457x2+4.720x3+1.377x4 将两组样本数据分别代入3个方程: 代入样本1得 y1=410.431,y2=207.594,y3=207.309 代入样本2得 y1=186.519,y2=191.765,y3=192.139

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