人工智能演示作业模板
- 格式:doc
- 大小:38.50 KB
- 文档页数:4
用人工智能写作业的案例你可别不信,我身边就有这样用人工智能写作业的例子。
就拿我同学小明来说吧。
他就把题目往软件里一输,不一会儿,一篇看起来还挺像模像样的作文就出来了。
什么“我的理想是成为一名医生,救死扶伤,像白衣天使一样守护每一个生命。
在我小时候,看到邻居生病时痛苦的模样,就立志要走上医学的道路……”等等,语句通顺,还充满了感情呢。
第二天交作业的时候,他还美滋滋的,觉得自己肯定能得个高分。
结果呢,老师一眼就看出不对劲了。
为啥呢?因为这作文里有好多高级词汇,是小明平时根本就不会用的。
比如说“矢志不渝”这个词,小明平时连听都没怎么听过,更别说用在作文里了。
老师就把小明叫到办公室,问他这作文是不是自己写的。
小明刚开始还嘴硬呢,说就是自己写的。
老师就笑着说:“那你给我解释解释这个‘矢志不渝’啥意思,你咋想到用这个词的?”小明一下子就傻了眼,支支吾吾半天说不出来,最后只能老老实实交代是用人工智能写的。
还有一次,是数学作业。
有一道超级难的应用题,我们班好多同学都被这道题折磨得够呛。
我那另一个同学小刚也打起了歪主意。
他把题目的条件输进人工智能里,人工智能给出了详细的解题步骤。
小刚呢,就照葫芦画瓢把答案抄了下来,也没仔细看。
结果第二天老师讲这道题的时候,就问小刚:“你给大家讲讲你这解题思路是怎么来的呀?”小刚就照着人工智能给的步骤念,念到一半就卡壳了,因为他根本就没理解那些步骤的意思。
比如说有一步是设了一个很复杂的未知数,然后进行了一系列的换算,小刚完全不知道为啥要这么设,这不是露馅了嘛。
这些事儿让我们明白了,用人工智能写作业看起来是走了个捷径,可实际上呢,不仅是欺骗老师,对自己也没有一点好处。
毕竟学习这事儿啊,就像盖房子,你要是地基都不自己打,光靠别人给你弄个漂亮的外表,那房子迟早得塌呀。
《人工智能初体验》作业设计方案(第一课时)一、作业目标本次作业旨在帮助学生了解人工智能的基本概念,掌握一些基本的编程技能,并通过实践操作体验人工智能的应用。
二、作业内容1. 编程体验:学生需选择一款适合初中生使用的编程软件(如Scratch、Python等),设计一个简单的程序,实现对一个虚拟物体的移动控制。
程序要求能够根据学生的输入指令进行移动、旋转等操作,并能够根据实际情况进行反馈。
2. 知识问答:学生需通过互联网搜索人工智能的相关知识,回答5个关于人工智能的问题,如什么是人工智能、人工智能的应用场景等。
3. 实践分享:学生需在课后向班级同学分享自己在编程过程中的心得体会,包括遇到的问题及解决方法等。
三、作业要求1. 作业应在规定时间内完成,并提交至教师指定的平台或邮箱。
2. 提交的作业应包括程序截图、问题回答结果及分享内容等。
3. 鼓励学生在编程过程中尝试不同的方法,不断优化程序,提高自己的编程技能。
4. 提倡学生之间的合作与交流,共同解决遇到的问题。
四、作业评价教师将对提交的作业进行评分,优秀的作业将在班级中展示并给予一定的奖励。
同时,教师也会对学生的作业进行反馈,指出存在的问题和改进建议。
五、作业反馈学生将有机会在课后向教师和同学展示自己的编程成果,分享自己在编程过程中的心得体会和收获。
同时,教师也会对学生的作业反馈,鼓励学生继续努力,提高自己的信息技术水平。
在《人工智能初体验》课程中,作业设计是非常重要的一部分,它不仅可以帮助学生对所学知识进行巩固和深化理解,还能锻炼学生的实践操作能力和解决问题的能力。
在本课程中,我们将通过以下方式实现这些目标:1. 编程体验:通过编写简单的程序,学生可以亲身感受到人工智能的应用,提高自己的编程技能和解决问题的能力。
同时,教师也会对学生的程序进行点评和指导,帮助他们不断优化自己的作品。
2. 知识问答:通过回答问题,学生可以进一步了解人工智能的相关知识,增强自己的信息素养和自主学习能力。
作业一1.对于下列活动,分别给出任务环境的PEAS描述,并按照2.3.2节列出的性质进行分析:(a)(b)(c)2.先建立一个完整的搜索树,起点是S,终点是G,如下图,节点旁的数字表示到达目标状态的距离,然后用以下方法表示如何进行搜索。
图一首先,我们画出图一对应的完整的搜索树(按节点字母从小到大顺序依次画出):(a).深度优先:我们知道深度优先搜索是无信息搜索,按照编程的习惯,下图中深度优先搜索的顺序是按照节点的A-G的排序进行的(b).广度优先:我们知道一般的广度优先搜索也是无信息搜索,按照编程的习惯,下图中广度优先搜索的顺序同样是是按照节点的A-G的排序进行的(c).爬山法:对于爬山法我们需要了解的是,它是简单的循环过程,不断向最优方向移动。
该算法不需要维护搜索树,当前的节点的数据结构只需要记录当前状态和目标函数值。
此外,爬山法不会考虑与当前状态不相邻的状态。
从S出发,与S邻近最佳的状态为B,依次往下,一旦找到目标状态则算法终止,这也就是为什么爬山法容易陷入局部最优。
(d).最佳优先:最佳优先算法的结点是基于评价函数f(n)去扩展的,评估价值最低的结点首先选择进行扩展。
最佳优先算法和一致代价搜索算法实现类似,不同的是最佳优先是根据f值而不是根据g值对优先级队列排队。
3.图二是一棵部分展开的搜索树,其中树的边记录了对应的单步代价,叶子节点标注了到达目标结点的启发式函数的代价值,假定当前状态位于结点A。
图二(a)用下列的搜索方法来计算下一步需要展开的叶子节点。
注意必须要有完整的计算过程,同时必须对扩展该叶子节点之前的节点顺序进行记录:1.贪婪最佳优先搜索:首先,贪婪最佳优先算法是试图扩展离目标最近的节点,它只用到启发信息,也就是f(n)=h(n)。
如图,h(B)是未知的,但是根据三角不等式,我们可以知道7<=h(B)<=13。
因此,先扩展C结点。
2.一致代价搜索一致性代价搜索扩展的是路径消耗最小的结点。
《人工智能应用》作业设计方案(第一课时)一、作业目标本作业旨在通过实践操作,使学生初步了解人工智能的基本概念,掌握人工智能应用的基础知识,并能够通过简单的编程实践体验人工智能的魅力。
同时,培养学生的逻辑思维能力和创新思维,为后续的深入学习打下基础。
二、作业内容本课时作业内容主要包括以下几个部分:1. 理论知识学习:学生需认真阅读《人工智能应用》的教材内容,重点掌握人工智能的基本概念、发展历程以及在各个领域的应用。
2. 编程实践操作:利用信息技术课堂所学的编程知识,编写一段简单的程序,模拟人工智能的某种功能。
如,利用Scratch或Python语言实现简单的机器学习功能或实现某个基本功能的机器人算法。
3. 实践项目准备:准备一个简单的项目方案,可以是智能助手、智能家居控制系统等。
项目需明确功能、所需技术及实现步骤。
4. 案例分析报告:分析一个具体的人工智能应用案例,如智能语音助手、智能机器人等,并撰写分析报告,包括案例介绍、技术原理、应用场景及优缺点等。
三、作业要求1. 理论知识学习:学生需认真阅读教材内容,并做好相关笔记。
理解并掌握人工智能的基本概念及发展动态。
2. 编程实践操作:程序应具备一定的实用性和可操作性,能真实反映出学生对于人工智能应用的认知程度和编程能力。
代码需规范、注释清晰。
3. 实践项目准备:项目方案应具备可行性和创新性,能够展示学生对人工智能应用的前瞻性思考。
需提供详细的项目实施计划书。
4. 案例分析报告:需根据具体案例进行分析和解读,包括但不限于技术的选择与实现、市场的应用与影响等。
报告需层次分明、条理清晰、论据充分。
四、作业评价1. 理论知识掌握程度:根据学生的笔记和学习心得进行评价,了解学生对人工智能理论知识的掌握情况。
2. 编程实践能力:对所提交的程序代码进行评审,考察学生的编程能力和对人工智能应用的理解程度。
3. 实践项目创新性:评价学生所准备的项目方案的创意和可行性,以及学生的前瞻性思考能力。
《人工智能应用》作业设计方案(第一课时)一、作业目标本次作业旨在让学生了解人工智能的基本概念,掌握人工智能的应用场景,通过实践操作初步掌握使用常见的人工智能工具和方法。
二、作业内容1. 任务一:了解人工智能的基本概念要求学生在课后通过查阅资料、观看相关视频等方式,了解人工智能的定义、发展历程和应用领域。
完成一篇不少于500字的科普文章,介绍人工智能的基本概念,并阐述自己对人工智能的理解和看法。
2. 任务二:分析人工智能的应用场景学生需要选择一个具体的人工智能应用场景(如语音识别、图像识别、自然语言处理等),通过查阅资料和实践操作,分析该应用场景的实现原理和关键技术。
完成一篇不少于500字的科普文章,介绍该应用场景及其技术实现。
3. 任务三:实践操作:使用人工智能工具和方法学生需要在课后选择一个适合初中生实践操作的人工智能工具或平台(如Python编程、TensorFlow、Keras等),通过在线教程或教师指导,完成一项简单的任务(如人脸识别、语音合成等)。
三、作业要求1. 独立完成:学生需要独立完成所有作业任务,不得抄袭和团队完成。
2. 质量要求:学生需要认真撰写科普文章,内容真实、客观,能够准确传达人工智能的基本概念和应用场景。
字数达到要求,并能够结合自己的理解进行阐述。
3. 反馈与交流:学生需要将作业提交给教师,并参与课堂上的作业反馈和交流环节,接受教师的点评和指导。
四、作业评价1. 评价标准:作业评价将根据任务完成情况、文章质量、原创性、交流和反馈表现等因素进行综合评价。
2. 评价方式:教师将对学生提交的作业进行批改和点评,并记录在学生的平时成绩中。
五、作业反馈通过本次作业,学生将更好地了解人工智能的基本概念和应用场景,提高自己的科普写作能力。
同时,学生将有机会了解其他同学对人工智能的看法和理解,拓宽自己的视野。
在完成任务的过程中,学生可能会遇到一些困难和问题,教师将在课堂上提供指导和帮助。
《人工智能技术导论》实验指导书西北工业大学计算机学院目录一实验纲要 (1)二上机要求 (2)三实验内容 (3)实验一图搜索与问题求解 (3)实验1.1 启发式搜索 (3)实验1.2 A*算法搜索 (9)实验1.3 其他应用问题 (12)实验二产生式系统推理 (14)实验三TSP问题的遗传算法实现 (20)四实验报告模板 (27)人工智能实验一实验报告 (27)人工智能实验二实验报告 (28)人工智能实验三实验报告 (29)附件1 TSP问题的遗传算法程序模板 (30)附件2 学生作业作品展示 (35)一实验纲要一实验教学的目的、任务与要求将人工智能基础理论应用于实际问题的解决当中,加深学生对所学知识的理解,提高学生的实际动手能力。
二实验项目内容1图搜索策略实验用启发式搜索方法/A*算法求解重排九宫问题/八数码问题。
2产生式系统的推理以动物识别系统为例,实现基于产生式规则的推理系统。
3 TSP问题的遗传算法实现以N个结点的TSP问题为例,用遗传算法加以求解。
三参考教材人工智能技术导论-第3版,廉师友编著,西安电子科技大学出版社,2007。
四使用主要仪器设备说明在Windows2000/XP上,选用Java/C/C++/Matlab等语言进行实现。
五实验考核实验为12学时,分4次课完成。
每个实验题目在课堂上分别按百分制给出。
其中包括课堂纪律、程序运行结果、课堂回答问题及实验报告成绩等。
实验课总成绩为3个实验题目的平均成绩。
实验课要求学生提前预习,上课时需向辅导老师提交预习报告,报告格式和内容不作过多要求,只需简要说明自己本次实验的大体思想。
预习报告形式不限,电子版或手写版均可。
1 考核方法由各班辅导老师当堂检查源程序和运行结果,并提问相关问题,课堂上给出成绩并记录。
每个题目完成后把源代码和实验报告提交,由辅导老师检查实验报告并给出报告成绩。
2 评分标准每个实验题目根据以下标准进行考核:1)考勤分20分。
西电人工智能大作业八数码难题一.实验目的八数码难题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。
例如:(a) 初始状态 (b) 目标状态图1 八数码问题示意图请任选一种盲目搜索算法(深度优先搜索或宽度优先搜索)或任选一种启发式搜索方法(A 算法或 A* 算法)编程求解八数码问题(初始状态任选),并对实验结果进行分析,得出合理的结论。
本实验选择宽度优先搜索:选择一个起点,以接近起始点的程度依次扩展节点,逐层搜索,再对下一层节点搜索之前,必先搜索完本层节点。
二.实验设备及软件环境Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI 等编程语言。
三.实验方法算法描述:(1)将起始点放到OPEN表;(2)若OPEN空,无解,失败;否则继续;(3)把第一个点从OPEN移出,放到CLOSE表;(4)拓展节点,若无后继结点,转(2);(5)把n的所有后继结点放到OPEN末端,提供从后继结点回到n的指针;(6)若n任意后继结点是目标节点,成功,输出;否则转(2)。
流程图:代码:#include <stdlib.h>#include <stdio.h>typedef struct Node {int num[9]; //棋盘状态int deepth; //派生的深度 g(n)int diffnum; //不在位的数目 h(n)int value; //耗散值 f(n)=g(n)+h(n)struct Node * pre;struct Node * next;struct Node * parent;}numNode; /* ---------- end of struct numNode ---------- */int origin[9]; //棋盘初始状态int target[9]; //棋盘目标状态int numNode_num,total_step;numNode *open,*close; //Open表和Close表numNode *create_numNode(){return (numNode *)malloc(sizeof(numNode));}numNode *open_getfirst(numNode *head); //返回第一项,并从Open表中删除void open_insert(numNode *head,numNode *item); //向Open表中按序插入新节点void close_append(numNode *head,numNode *item); //向Close表中插入新节点int expand(numNode *item); //扩展节点int print_result(numNode *item); //打印结果numNode *copy_numNode(numNode *orgin);char isNewNode(numNode *open,numNode *close,int num[9]);//是否在Open表或Close表中void print_num(int num[9]); //打印棋盘状态int diff(int num[9]); //求不在位棋子的个数void init(); //初始化,获得棋盘初始状态和目标状态void swap(int *a,int *b);int operate(int num[],int op);void free_list(numNode *head);/** Name: 主函數* Description: 程序入口*/Int main ( int argc, char *argv[] ){//初始化Open表和Close表open=create_numNode();close=create_numNode();open->pre=open->next=close->pre=close->next=NULL; init(); //由用户输入初始和目标状态//初始化初始节点numNode *p1;p1=create_numNode();p1->parent=NULL;p1->deepth=0;int i=0;for ( i=0; i<9; i++){p1->num[i]=origin[i];}open_insert(open,p1);numNode_num=1;p1=open_getfirst(open);while (p1!=NULL){close_append(close,p1);if(expand(p1))return EXIT_SUCCESS;p1=open_getfirst(open);}printf("No solution!\n");return EXIT_SUCCESS;} /* ---------- end of function main ---------- */voidinit ( ){while(1){printf("Please input opriginal status:\nFor example:123456780 stands for\n""1 2 3\n""4 5 6\n""7 8 0\n");char temp[10];scanf("%s",&temp);int i=0;for ( i=0;i<9 && temp[i]-'0'>=0 && temp[i]-'0'<=8; i++){origin[i]=temp[i]-'0';}printf("Please input target status:\n");scanf("%s",&temp);int j=0;for ( j=0; j<9 && temp[j]-'0'>=0 && temp[j]-'0'<=8; j++){target[j]=temp[j]-'0';}system("cls");if ( i==9&&j==9){break;}}} /* ----- end of function init ----- */voidopen_insert (numNode *head,numNode *item){numNode *p,*q;p=head->next;q=head;while ( p!=NULL && item->value > p->value ){q=p;p=p->next;}q->next=item;item->pre=q;item->next=p;if(p!=NULL){p->pre=item;}} /* ----- end of function open_insert ----- */numNode *open_getfirst (numNode *head){numNode *p;if ( head->next == NULL ){return NULL;}p=head->next;head->next=p->next;if ( p->next != NULL ){p->next->pre=head;}p->pre=NULL;p->next=NULL;return p;} /* ----- end of function open_getfirst ----- */voidclose_append (numNode *head,numNode *item){item->next=head->next;item->pre=head;head->next=item;if ( item->next!=NULL ){item->next->pre=item;}} /* ----- end of function close_append ----- */intexpand (numNode *p1){numNode * p2;int op=1;for ( op=1; op<=4; op++){p2=copy_numNode(p1);operate(p2->num,op);if(isNewNode(open,close,p2->num)=='N'){p2->parent=p1;p2->deepth=p1->deepth+1;p2->diffnum=diff(p2->num);p2->value=p2->deepth+p2->diffnum;if(p2->diffnum==0){total_step=print_result(p2);printf("Total step: %d\n",total_step); free_list(open);free_list(close);return 1;}else{numNode_num++;open_insert(open,p2);}}elsefree(p2);}return 0;} /* ----- end of function expand ----- */intoperate(int m[], int op){int blank;blank=0;while (m[blank]!=0 && blank<9 )++blank;if (blank==9)return 1;switch (op) {case 1: /* up */if (blank>2)swap(m+blank,m+blank-3);break;case 2: /* down */if (blank<6)swap(m+blank,m+blank+3);break;case 3: /* left */if (blank!=0 && blank!=3 && blank!=6) swap(m+blank,m+blank-1);break;case 4: /* right */if (blank!=2 && blank!=5 && blank!=8) swap(m+blank,m+blank+1);break;default : return 1;}return 0;}voidswap(int *a, int *b){int c;c=*a;*a=*b;*b=c;}numNode *copy_numNode (numNode *origin){numNode *p;p=create_numNode();p->deepth=origin->deepth;p->diffnum=origin->diffnum;p->value=origin->value;int i;for ( i=0; i<9; i++){(p->num)[i]=(origin->num)[i];}return p;} /* ----- end of function copy_numNode ----- */intdiff (int num[9]){int i,diffnum=0;for(i=0;i<9;i++)if(num[i]!=target[i])diffnum++;return diffnum;} /* ----- end of function diff ----- */charisNewNode (numNode *open,numNode *close,int num[9]) {numNode *p;int i=0;p=open->next;while ( p!=NULL ){for ( i=0; i<9; i++){if(p->num[i]!=num[i])break;}if(i==9)return 'O'; //Openp=p->next;}p=close->next;while ( p!=NULL ){for ( i=0; i<9; i++){if(p->num[i]!=num[i])break;}if(i==9)return 'C'; //Closep=p->next;}return 'N';} /* ----- end of function isNewNode ----- */voidfree_list (numNode *head){numNode *p,*q;p=head->next;while ( p!=NULL ){q=p->next;free(p);p=q;}free(head);} /* ----- end of function free_list ----- */voidprint_num (int num[9]){int i;for ( i=0; i<9; i++){printf("%d\t",num[i]);if((i%3)==2)printf("\n");}} /* ----- end of function print_num ----- */intprint_result ( numNode *item){numNode *p;int step;p=item;if(p!=NULL){step=print_result(p->parent);printf("\nStep %d:\n",step+1);print_num(p->num);return step+1;}else{return -1;}}四.结果:下图实验结果中,一步代表一层的搜索结果中的最优解;八数码难题的宽度优先搜索树:五.实验分析宽度优先搜索属于一种盲目搜索算法,可以系统的展开所有节点,理论上一定能达到搜寻目的。
《人工智能初体验》作业设计方案(第一课时)一、作业目标本作业旨在让学生通过实际操作,初步体验人工智能的基本概念和技术应用,加深对人工智能的理解和认识,培养学生对信息技术的兴趣和探索精神。
二、作业内容1. 理论学习:学生需认真阅读《人工智能初体验》的教材内容,了解人工智能的基本概念、发展历程、主要技术及应用领域。
2. 实践操作:学生需利用所学知识,完成以下实践任务:(1)在家长的指导下,利用搜索引擎或在线平台,收集至少三个不同领域的人工智能应用案例(如智能语音助手、智能家居、无人驾驶等),并简要分析其工作原理和功能特点。
(2)选择一个合适的平台(如Python编程平台),尝试编写一个简单的程序,如智能猜数游戏等。
(3)撰写实践报告:记录实践过程,包括所使用的工具、程序代码或设计思路,以及遇到的问题和解决方法。
3. 创意设计:鼓励学生发挥想象力,设计一个具有创新性的产品或服务方案,如智能教育机器人、智能家居系统等,并简要阐述其功能特点和实现方法。
三、作业要求1. 理论学习部分需结合教材内容,认真阅读并理解相关概念和知识。
2. 实践操作部分要求真实进行并完成各项任务,收集的人工智能应用案例要确保真实可信。
编写的程序需具有一定的功能和互动性。
3. 实践报告要详细记录实践过程和成果,以及个人思考和体会。
创意设计部分需提供详细的设计方案和思路。
4. 作业提交前需自行检查并修正错误和不足,确保作业质量。
四、作业评价教师将根据学生的理论学习情况、实践操作成果和创意设计方案的完整性和创新性进行评价。
评价标准包括:1. 理论学习部分是否理解并掌握人工智能的基本概念和技术应用。
2. 实践操作部分是否真实完成各项任务,程序代码是否具有功能和互动性。
3. 实践报告和创意设计方案是否详细、完整、清晰,并体现出学生的思考和体会。
五、作业反馈教师将对学生的作业进行认真评阅,并及时给予反馈。
对于优秀的学生作业,将在课堂上进行展示和表扬;对于存在的问题和不足,将给予指导和建议,帮助学生改进和提高。
《人工智能应用》作业设计方案(第一课时)一、作业目标本课时作业设计旨在让学生:1. 了解人工智能的基本概念及其在日常生活中的应用。
2. 掌握人工智能的基本原理和算法。
3. 初步了解编程语言在人工智能中的应用。
4. 培养学生的逻辑思维能力和创新能力。
二、作业内容1. 基础知识学习学生需通过课本或网络资源,了解人工智能的发展历程、基本概念和应用领域。
2. 视频观看与理解观看关于人工智能的简短视频,如“发展简史”等,理解人工智能技术的演进与现代应用。
3. 编程基础学习学生需自学编程语言的基础知识,如Python、C++等中与人工智能相关的语法结构。
4. 案例分析选择一个与人工智能相关的案例(如智能语音助手、自动驾驶等),进行详细分析,包括其工作原理、技术应用等。
5. 实践操作使用简单的编程工具(如Scratch或Python环境),尝试编写一个简单的程序,如条件判断或简单的循环操作。
三、作业要求1. 要求学生完成每一项任务时都要认真查阅资料、细心理解、仔细编写,并且做到任务间的关联和过渡。
2. 对于每一个环节的完成情况,要确保记录详细的笔记或学习心得,包括关键概念的解释和自我理解。
3. 在案例分析中,需要明确列出其技术要点和功能实现方式,并在实践操作中体现出对理论知识的应用。
4. 学生可组队或个人完成所有作业任务,但在过程中应避免抄袭和照搬他人的作品,保证作品的原创性。
5. 在实践中,注意遵循代码的书写规范,并尽可能考虑代码的可读性和维护性。
四、作业评价1. 教师将根据学生提交的作业内容、格式和完整性进行评价。
2. 评价标准包括基础知识的掌握程度、案例分析的深度和广度、实践操作的正确性和创新性等。
3. 对于表现优秀的学生,将给予表扬和奖励;对于存在问题较多的学生,将给予指导和帮助。
五、作业反馈1. 教师将在课堂或线上平台上对作业进行点评和讲解,帮助学生纠正错误并加深理解。
2. 对于普遍存在的问题,教师将提供相应的解决方案或补充资料供学生学习。
《走进人工智能》作业设计方案(第一课时)一、作业目标本作业旨在通过实践操作,使学生初步了解人工智能的基本概念,掌握人工智能的简单应用,并激发学生对人工智能的兴趣和探索欲望。
通过本次作业,期望学生能够具备基本的信息素养和科技创新能力。
二、作业内容1. 理论知识学习:学生需认真阅读《走进人工智能》课程教材,了解人工智能的定义、发展历程以及在生活中的应用实例。
2. 视频观摩:观看人工智能相关教学视频,如智能语音助手、智能机器人等的工作原理和实际应用。
3. 实践操作:学生需利用所学知识,完成以下任务:(1)设计一个简单的智能问答系统,能够回答一些基础问题。
(2)利用编程软件(如Python)编写一段简单的机器人程序,实现基本功能。
(3)收集至少三个生活中的人工智能应用实例,并分析其工作原理和优势。
4. 作品提交:将设计好的智能问答系统或编写的机器人程序以及收集的人工智能应用实例分析报告以电子文档形式提交。
三、作业要求1. 理论学习要深入,不仅要理解人工智能的概念,还要了解其发展历程和应用领域。
2. 视频观摩要认真,注意观察并理解视频中展示的智能设备的工作原理和应用场景。
3. 实践操作要结合所学知识,发挥创新和想象力,设计出具有实用性的智能系统或程序。
4. 作品提交要规范,电子文档要清晰、完整地展示学生所完成的任务。
5. 作业过程中要注意安全,特别是在编程和操作智能设备时,要遵循相关规定和操作规程。
四、作业评价1. 评价标准:以学生的理论知识掌握程度、实践操作能力、作品创新性和规范性为评价标准。
2. 评价方式:教师根据学生提交的电子文档和实际操作情况进行综合评价。
3. 评价结果:评价结果将作为学生平时成绩的一部分,优秀作品将在班级展示。
五、作业反馈1. 教师将对每位学生的作业进行认真批改,指出存在的问题和不足,提出改进意见。
2. 对于优秀作品,教师将在课堂上进行展示,并给予表扬和鼓励。
3. 学生应根据教师的反馈,认真总结经验教训,不断完善自己的作品。
《人工智能导论》
课程设计
深度优先搜索算法解决加法问题
姓名:张三三
班级:计机081
学号:20080999
深度优先搜索算法解决加法问题
1.问题描述
每个字母代表一个数字,且不能重复。
并且要使竖式成立。
s e t d
+ m o r d
---------
m o t e y
2.涉及算法描述
深度优先搜索所遵循的搜索策略是尽可能“深”地搜索图。
在深度优先搜索中,对于最新发现的顶点,如果它还有以此为起点而未探测到的边,就沿此边继续汉下去。
当结点v 的所有边都己被探寻过,搜索将回溯到发现结点v有那条边的始结点。
这一过程一直进行到已发现从源结点可达的所有结点为止。
如果还存在未被发现的结点,则选择其中一个作为源结点并重复以上过程,整个进程反复进行直到所有结点都被发现为止。
3.程序伪码或分析流程或结题思路等(全部源码必须另外交,代码需要注释,但不打印)//分析:考虑到m 为s+m 后的进位,则m必为0或1。
//注意:由于题目没有指明m是否可以为0,所以认为m是可以为0的。
20.#include <iostream>
ing namespace std;
22.
23.int main(void)
24.{
25. int s,e,t,d;
26. int m,o,r,y;
27. int sum,tmp,i;
28.
29. for ( m=0; m<=1; m++ )
30. {
31. for ( o=0; o<=9; o++ )
32. {
33. if ( o==m ) continue;
34.
35. for ( r=0; r<=9; r++ )
36. {
37. if ( r==m || r==o ) continue;
38.
39. for ( d=0; d<=9; d++ )
40. {
41. if( d==m || d==o || d==r ) continue;
42.
43. for ( s=0; s<=9; s++ )
44. {
45. if ( s==m || s==o || s==r || s==d ) continue;
46.
47. for ( e=0; e<=9; e++ )
48. {
49. if ( e==m || e==o || e==r || e==d || e==s ) continue;
50.
51. for ( t=0; t<=9; t++ )
52. {
53. if ( t==m || t==o || t==r || t==d || t== s || t==e ) continue;
54.
55. sum = (s*1000+e*100+t*10+d) + (m*1000+o*100+r*10+d);
56. y = sum%10;
57.
58. if ( y%2 != 0 ) continue;
59.
60. if ( y==s || y==e || y==t || y==d || y==m || y==o || y==r ) continue;
61.
62. tmp = sum;
63.
64. for ( i=1; i<=5; i++ )
65. {
66. if ( i==2 && tmp%10 != e ) break;
67. else if ( i==3 && tmp%10 != t ) break;
68. else if ( i==4 && tmp%10 != o ) break;
69. else if ( i==5 && tmp%10 != m ) break;
70.
71. tmp /= 10;
72. }
73.
74. if ( i==6 )
75. {
76. cout<<s<<e<<t<<d<<" + "<<m<<o<<r<<d<<" = "<<m<<o<<t<<e<<y<<endl;
77. }
78. }
79. }
80. }
81. }
82. }
83. }
84. }
85.
86. return 0;
87.}
4.演示结果(包含全部中间结果,也可以制作一个动画进行演示)
2817 + 0367 = 03184
3716 + 0456 = 04172
3718 + 0458 = 04176
3719 + 0459 = 04178
5731 + 0641 = 06372
6419 + 0729 = 07148
6851 + 0731 = 07582
6852 + 0732 = 07584
6524 + 0734 = 07258
7536 + 0816 = 08352
8652 + 0912 = 09564
8762 + 0912 = 09674
8543 + 0913 = 09456
9346 + 1086 = 10432
9456 + 1086 = 10542
9237 + 1087 = 10324
9567 + 1087 = 10654
5.算法分析与结论
对于具有n个顶点和e条边的无向图或有向图,遍历算法DFSTraverse对图中每顶点至多调用一次DFS或DFSM。
从DFSTraverse中调用DFS(或DFSM)及DFS(或DFSM)内部递归调用自己的总次数为n。
当访问某顶点v i时,DFS(的时间主要耗费在从该顶点出发搜索它的所有邻接点上。
用邻接矩阵表示图时,其搜索时间为O(n);用邻接表表示图时,需搜索第i个边表上的所有结点。
因此,对所有n个顶点访问,在邻接矩阵上共需检查n2个矩阵元素,在邻接表上需将边表中所有O(e)个结点检查一遍。
所以,DFSTraverse的时间复杂度为O(n2) (调用DFSM)或O(n+e)(调用DFS)。