杨辉三角实验报告

合集下载

数学课堂探究杨辉三角

数学课堂探究杨辉三角

课堂探究探究一与杨辉三角有关的问题解决与杨辉三角有关的问题一般方法是观察法,观察时可以横看、竖看、斜看等多角度观察,找出数据之间的关系.由特殊到一般推出对应规律,用数学式子表达出来,并进行简单说明所得规律的正确性.【典型例题1】如图所示,在杨辉三角中,第n条和第(n+1)条细斜线上各数之和与第(n+2)条细斜线上各数之和的关系如何?证明结论.思路分析:此题可先从特殊行得出结论,然后再证明其一般性,如令n=2,去探究第2条和第3条细斜线上各数之和与第4条细斜线上各数之和的关系.解:第n条和第(n+1)条细斜线上各数之和等于第(n+2)条细斜线上各数之和.证明如下:第n条细斜线上各数之和为C错误!+C错误!+C错误!+C错误!+C错误!+…,第(n+1)条细斜线上各数之和为C0n+C错误!+C错误!+C错误!+C错误!+C错误!+…,故这两条细斜线上各数之和为(C错误!+C错误!+C错误!+C错误!+C错误!+…)+(C错误!+C错误!+C错误!+C错误!+C错误!+C错误!+…)=C错误!+(C错误!+C错误!)+(C错误!+C错误!)+(C错误!+C错误!)+(C错误!+C错误!)+…=C错误!+C错误!+C错误!+C错误!+C错误!+….等式右边正好是第(n+2)条细斜线上各数之和,所以第n条和第(n+1)条细斜线上各数之和与第(n+2)条细斜线上各数之和相等.探究二求展开式的各项系数之和赋值法是求二项展开式系数及有关问题的常用方法,取值要有利于问题的解决,可以取一个值或几个值,也可以取几组值,解决问题时要避免漏项.一般地,对于多项式f(x)=a0+a1x+a2x2+…+a n x n,各项系数和为f(1).奇次项系数和为错误![f(1)-f(-1)],偶次项系数和为错误![f(1)+f(-1)],a0=f(0).【典型例题2】已知(1-2x)7=a0+a1x+a2x2+…+a7x7。

求:(1)a1+a2+…+a7;(2)a1+a3+a5+a7;(3)a0+a2+a4+a6;(4)|a0|+|a1|+|a2|+…+|a7|.思路分析:本题考查求二项展开式系数和问题,常用赋值法,注意取值要有利于问题的解决,可以取一个值或几个值,也可以取几组值.解:令x=1,则a0+a1+a2+a3+a4+a5+a6+a7=-1,①令x=-1,则a0-a1+a2-a3+a4-a5+a6-a7=37,②(1)因为a0=C错误!=1,所以由①得,a1+a2+a3+…+a7=-1-1=-2.(2)由(①-②)÷2,得a1+a3+a5+a7=错误!=-1 094.(3)由(①+②)÷2,得a0+a2+a4+a6=错误!=1 093.(4)因为(1-2x)7展开式中,a0,a2,a4,a6大于零,而a1,a3,a5,a7小于零,所以|a0|+|a1|+|a2|+…+|a7|=(a0+a2+a4+a6)-(a1+a3+a5+a7).所以由(2),(3)即可得其值为1 093-(-1 094)=2 187。

5-25数据结构-杨辉三角

5-25数据结构-杨辉三角

HUNAN UNIVERSITY 课程实验报告题目杨辉三角学生姓名王家威学生学号201308070217专业班级智能科学与技术1302班指导老师朱宁波一、问题描述:编写程序,根据输入的行数,屏幕显示杨辉三角。

二、基本要求:1.行数不大于20 行。

2.基于队列的操作来实现杨辉三角的不断生成过程。

(注:不要用其它的公式计算的方法或者二维数组来实现)。

3.基于数组实现队列的物理数据结构。

三、输入输出格式例如:输入:n=6;输出为:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1四、具体设计过程①算法思想:1)首先我们设计需要定义一个队列的类,其中要包含出队列,入队列以及能找到队列中值的函数等;2)其次,我们需要在先在定义好的类中先放入三个元素0,1,0;3)接着我们需要用while循环和if语句来执行具体的操作,且把每层的数据存在一个字符数组中,并在最后给队列中进一个0直到结束所有外循环操作。

②程序基本流程1)创建MFC工程,和建立界面并且绑定参数2)写触击事件,并写出杨辉三角3)最后在点击事件中加入函数五、实验代码://全局变量CString s="";int size=0;//入队void inQueue(int *q,int it){q[size++]=it;}//出队outQueue(int *q){int temp=q[0];for(int i=0;i<size-1;i++)q[i]=q[i+1];size--;return temp;}//杨辉三角产生void YCreate(int *q,int input,CString m_out){for(int i=1;i<input+1;i++){ for(int j=0;j<i+1;j++){inQueue(q,q[0]+q[1]);if(q[0]!=0){m_out.Format("%-5d",outQueue(q));//出队并赋值输出s+=m_out;}else outQueue(q);//去除0,使其不输出}inQueue(q,0);m_out.Format("\n");s+=m_out;}}void CMFCDlg::OnOK(){UpdateData(TRUE);// TODO: Add extra validation here//杨辉三角函数如下:int Array[500];s="";size=0;inQueue(Array,0);inQueue(Array,1);inQueue(Array,0);YCreate(Array,m_input,m_out);m_out.Format(s);// CDialog::OnOK();这一行代码是系统自己生成,貌似会不能运行的感觉UpdateData(FALSE);}六:结果截图七、实验心得1.更加深刻了解MFC组成及编写2.学会了使用数组实现队列3.了解了杨辉三角在数组实现的一种方法4.对于界面中的各个参数使用更加了解5.熟练的使用全局变量和参数。

杨辉三角综合实践活动作文

杨辉三角综合实践活动作文

杨辉三角综合实践活动作文今天,我要给大家分享一个超级有趣的数学游戏——杨辉三角。

这个三角形可是数学界的“明星”,它的名字来源于古代的数学家杨辉。

你知道吗?杨辉三角不仅长得好看,而且里面藏着好多数学的秘密呢!让我们来认识一下杨辉三角。

这个三角形是由三个数列组成的:第一行是1,第二行是1+1/2,第三行是1+1/2+1/3。

你看,这就像是我们小时候玩的积木游戏,每一行都是前一行的和。

每一行的数字都是不一样的,就像是一个五彩斑斓的拼图,每一块都有它独特的颜色。

说到数字,我就想起了我小时候最喜欢的游戏——数星星。

那时候,我总是数着数着就睡着了,因为星星真的好多啊,好像永远都数不完。

现在想想,那些星星就像是杨辉三角里的每个数字,虽然它们看起来一样,但每一个都承载着不同的故事和意义。

再来说说数学吧!你知道为什么杨辉三角这么有趣吗?因为它其实是一个无限序列哦!每一行的数字都是前一行的和。

想象一下,如果你把这个数字序列倒过来,你会发现它的形状就像是一个金字塔,每一层的面积都在减少,直到变成0。

这就是数学的魅力所在,它可以让我们看到事物的本质,就像看透了杨辉三角的秘密一样。

不过,说了这么多,我还是想提醒大家,玩杨辉三角的时候要注意安全哦!不要像以前那样在房间里跳来跳去,那样很容易摔伤的。

我们要用正确的方法玩,比如在地板上铺上一张大纸,然后小心翼翼地在上面摆弄这些数字。

这样既能享受乐趣,又能避免受伤,一举两得嘛!我想说,数学不仅仅是一堆冰冷的数字和公式,它还能带给我们很多乐趣和启示。

就像杨辉三角一样,虽然它看起来简单,但却蕴含着深刻的智慧和美感。

所以,让我们一起探索数学的世界吧,说不定你也能发现一些有趣的秘密呢!。

杨辉三角综合实践活动作文

杨辉三角综合实践活动作文

杨辉三角综合实践活动作文哎呀,听说今天要写一篇作文,主题还挺有趣的——杨辉三角综合实践活动。

先承认一点,我小时候对数学可不是特别上心,但这个杨辉三角听起来好像跟魔术一样神奇。

我记得初中老师曾经提过,可惜那时候的我脑袋里更多的是足球和漫画英雄,数学公式就跟外星语一样。

不过咱们不谈过去了,反正现在长大了,这次的活动听起来挺有意思的。

想象一下,一群人围坐一堆数表,一张纸、一支笔,大家各种算来算去,说不定还能因为数错了而发生热烈讨论呢。

就像那些电影里面数学家们为了证明定理激动地掷骰子一样,我们这不也是在搞数学吗?听说这个杨辉三角,其实是个神奇的数学模式,每个数字都是上面两个数字的和。

简单粗暴地说,就像搭积木一样,一层一层往上加,居然可以画出一个三角形,里面的数字特别有规律。

我能想象到,大家兴致勃勃地画着、写着,中途还可能掐着下巴思考:“这个数字怎么来的?难道是魔法吗?”而且这活动不只是数学,还涉及到团队合作和交流。

我可以想见,小明可能因为算错了一步,然后小芳跳起来说:“哎呀,你看,应该是这样的!”然后大家就开始互相交流,讨论到最后可能还会有那种豁然开朗的时刻,就像解决完数学难题一样,全场鼓掌喝彩。

不过,说真的,我有点担心自己的数学天赋会不会在这时候丢脸。

万一算错了,别人笑话我“数学白痴”,那我还真有点儿尴尬。

不过,没关系,既然是活动,就是玩儿的嘛,开心最重要!就当是锻炼大脑、增加见识,顺便还能认识些新朋友,何乐而不为呢?总之,这个杨辉三角综合实践活动,不仅让我们在数学上有了新的体验,还能增进团队间的互动和合作。

就像探险一样,虽然可能会遇到一些未知的数字和小困难,但在大家一起努力下,一定能玩得开心、学得开心!。

指导学生研究杨辉三角的实践及其教育价值

指导学生研究杨辉三角的实践及其教育价值

指导学生研究杨辉三角的实践及其教育价值浙江省宁波市北仑中学安凤吉 315800杨辉三角是现行高中数学教材中少见的数学历史材料之一,它不仅记载了一些中外数学家们一段美好而又动听的故事,而且还科学地揭示了二项展开式的二项式系数的构成规律,更具有许多奇妙的性质.因此,杨辉三角是不可多得的集思想性、科学性、知识性、趣味性于一体的珍贵的历史材料.为了充分发挥杨辉三角的教育功能,笔者指导了学生对杨辉三角的研究,现将研究的过程、成果及体会分述如下.1.实践过程利用二项式定理第二课时的小结时间(约10分钟),向学生简介杨辉三角,并发给每人一份研究提纲,指导、布置研究任务.1.1杨辉三角简介杨辉三角因最早出现在我国宋朝数学家杨辉1261年所著的《详解九章算法》的附录中而被称为“杨辉三角”.其实,在11世纪中叶,我国北宋数学家贾宪就著就了《皇帝九章算法细草》一书,可惜这部书早已失传了.但该书部分内容(包括杨辉三角)因被收入《详解九章算法》一书而幸存.西方把杨辉三角称为“帕斯卡三角”,这是因为“帕斯卡三角”在西方最早出现在法国数学家帕斯卡1665年出版的《算术三角》的著作中,这要比贾宪晚400年左右.1.2杨辉三角的研究提纲(1)阅读《高中代数(下册)》第248页至第249页.(2)如图1-1,一个儿童从A处进入图中的曲经,请计算这个儿童分别到达B、C、D、E、F、G、H、I、J、K、L、M、N、O处的最短路线的条数,并把它填入图1-2的相应的圆圈内.你从中发现有什么规律?按照你计算的结果和发现的规律对照杨辉三角,写出杨辉三角的前8行.(图1-1)(图1-2)(3)请参考《高中代数(下册)》第248页的图,研究杨辉三角中的数字与组合数是否有关系?有怎样的关系?(4)在杨辉三角中,如图2,一些直线连接的数字分别构成了一些数列,请研究这些数列的性质.例如,杨辉三角是一个“等腰三角形”,左腰上的数字构成了常数列1,1,1,…,1…;平行于左腰的直线上的数字依次构成等差数列1,2,3,4,…;二阶等差数列(其一阶差分数列是等差数列)1,3,6,10,…;三阶等差数列(其二阶差分数列是等差数列)1,4,10,20,…;……(5)从“形”上研究杨辉三角的性质,例如奇数的分布,偶数的分布,3的倍数的分布等等.(6)研究杨辉三角其它方面的性质.(7)参考文献(略).1.3研究活动的具体要求(1)自愿为原则,每班组成10个研究小组,每组4至5人,并推选一名组长,负责组织本组的研究及研究成果的整理,写成一篇小论文.(2)对于研究的成果,要进行严格的证明,如果是摘录的结论,请注明出处.(3)三周后进行交流,各研究小组分别委派一名代表宣读论文.(4)评选出优秀研究成果(不超过研究成果总数的三分之一).2.研究成果(如图3)(图2 ) (图3)2.1杨辉三角的数字构成规律是,每行两相邻数字的和等于它们共同对应的下行的数字(如图中),这条性质可由m n m n m n C C C 11+-=+得证.2.2横行(如1—4—6—4—1)与首末两端“等距离”的两个数字相等,这条性质就是二项式系数的性质1.2.3第n 行(如1—4—6—4—1)的所有数字之和为21-n ,这条性质可由组合数的性质1112111012------=++++n n n n n n C C C C 得证. 2.4当n 为奇数时,第n 行有奇数项,中间一项最大;当n 为偶数时,第n行有偶数项,中间两项相等且最大.这条性质就是二项式系数的性质2.2.5第n 行的平方和等于1)1(2--n n C (如12+42+62+42+12=70=4815)15(2C C =--),这条性质可由恒等式1)1(2211221211201)()()()(-------=++++n n n n n n n C C C C C 得证. 2.6平行于杨辉三角的腰的直线(包括腰所在的直线)上各个数字之和等于末项的下一行偏向中央的第一项(如图3中1+2+3+4+5+6=21,1+3 +6+10+15=35),可由恒等式1121++++++=++++m n m m n m m m m m m m C C C C C得证.2.7第2n (-∈Z n )行所有各项都是奇数.证明:第2n 行各项为k nC 12-(k =0,1,2……,12-n ), (1)当k =0,1时,kn C 12-=1,12-n 均为奇数; (2)假设当k =m -1(m ≥2)时命题正确,即112--m n C 为奇数,则 m n C 12-=m m n -2112--m n C ……①,若m 为奇数,由①知mn C 12-=奇数奇数奇数⨯,假设m nC 12-是偶数,则有偶数=奇数奇数奇数⨯,即有偶数⨯奇数=奇数⨯奇数,矛盾,故m n C 12-必为奇数;若m 为偶数,可设m =2p 1m ,其中1m 为正奇数,N p ∈,n p <.①可化为m n C 12-=112m m p n --112--m n C ,同理可证mn C 12-仍为奇数.因而当k =m 时,命题也正确.由(1)、(2)可知第2n 行所有各项都是奇数.2.8中轴线(1,2,6,20……所在的直线)上的各项或平行于中轴的直线上的各项构成的数列,都有这样的性质:每一项与前一项的比构成的新数列的极限均为4.证明:原数列的通项为211kn n C +--(它是杨辉三角中的第n 行,且与中轴线的距离为k 的直线上的数),当k =0时,⎭⎬⎫⎩⎨⎧--211n n C 是中轴线上的数列 (n =1,3,5,…,2m -1,…);当k =1时,⎭⎬⎫⎩⎨⎧-21n n C(n =2,4,6,…,2m ,…)是平行于中轴线且与其相邻(即距离为1)的直线上的数列;当k =2时,⎭⎬⎫⎩⎨⎧+-211n n C(n =3,5,7,…,2m -1,…)是平行于中轴线且与中轴线距离为2的直线上的数列….因为211k n n C +--的前一项是233kn n C +--,故211kn n C +--÷233k n n C +--=])1][()1[()2)(1(4k n k n n n --+---,故有∞→n lim (211k n n C +--÷233k n n C +--) =∞→n lim ])1][()1[()2)(1(4k n k n n n --+---=4. 2.9把每一行各项从左至右分别乘以m 0,m 1,…m r ,…(m C ∈,m ≠-1),再把它们加起来所得到的和数列是公比为(1+m )的等比数列.证明:第n 行各项为11211101,,,,-----n n n n n C C C C ,由题设新数列的通项为n a =11112211101)1(-------+=++++n n n n n n n m m C m C m C C ,故有n a ÷1-n a =(1+m ),得证.2.10英国的《SMP 英国中学数学教科书》中,把帕斯卡三角(即杨辉三角)改写成如图4的形式,并将每一条斜线上的数字分别相加,得到数列1,1,3,5,8,13,21,…,此数列是著名的斐波那契数列.2.11在杨辉三角中(如图3),以第n 行(包括该行)为底边,以第一行的“1”为顶点的三角形是等边三角形.我们称之为边长为n 的杨辉三角.2.12在边长为16的杨辉三角中,把偶数“聚集区”(图5中“0”代表偶数,“1”代表奇数,可称为杨辉三角的0-1三角)看作是“倒等边三角形”,只有一个偶数的“聚集区”,也可看作是一个边长为1的“倒等边三角形”.把这些“倒等边三角形”从杨辉三角中“挖去”,剩余部分就是有趣的西尔平斯基衬垫(如图6).西尔平斯基衬垫是由波兰数学家西尔平斯基(Sierpinski )于1915年发现的,故而得名.使用Gbasic 语言编程:运行结果如图5:(图5)(图6)通过民主评议,同学们一致认为2.7、2.8、2.12是我们依靠自己的聪明才智,并做了很多具有开拓性的工作获得的,因而无可争议地被评为优秀成果.2.10虽然不是学生自己的研究成果,但是,多数同学认为2.10也来之不易,是一个小组的同学费尽周折获得的,并且还有很强的趣味性;另外,“拿来主义”也是学习的一种方法.因此,2.10也被评为优秀成果.3.教育价值3.1德育价值3.1.1培养爱国主义思想的教育价值杨辉三角“是数学史上的重大发现,它在数学的许多领域都有及其重要的应用”[1],这一重大发现比西方要早四百年左右,是我国数学家对数学发展的重要贡献之一.通过向学生介绍杨辉三角的来龙去脉,展示了我国悠久的历史、灿烂的文化和我国古代数学发展的成就,显示了我们中华民族的勤劳和智慧.改革开放的今天,是我国历史上经济发展和社会进步的最好时期,中华古老文化的底蕴与中华民族的聪明才智,必将化作21世纪的民主、富强、文明的社会主义现代化强国,屹立在世界的东方.这是一次生动的爱国主义思想教育,极大地激发了学生实现为社会主义现代化强国而刻苦学习的热情.3.1.2培养献身科学精神的价值通过杨辉三角的介绍和查阅大量的资料,学生还获得了许多科学知识和鲜为人知的关于科学和科学家的故事,从而引起了学生对科学的极大兴趣和热爱.在研究的过程中,学生也体会到了在科学研究中遇到挫折时的困惑和取得成功的喜悦.这些都会使学生萌发和树立爱科学、学科学、用科学、献身科学的思想.而从事科学研究首先要有科学的态度,还要有脚踏实地、知难而上的实干精神,通过这项研究,也有利于磨练学生的意志,培养学生一丝不苟的科学态度、坚忍不拔的毅力和刻苦钻研的精神.3.1.3培养合作意识和精神的价值和平与发展是当今世界的主流,而和平与发展需要合作,没有合作就没有和平,就没有发展.一个人不谋求并善于与他人合作,就很难融入现代社会,就没有发展的空间,甚至难以生存.我国已经进入了独生子女时代,学校教育要重视培养学生与他人合作的意识和精神.这项研究活动是在自愿的基础上组成研究小组,以研究小组为单位,组员之间既有分工又有合作,研究成果是集体智慧的结晶,使学生体会到了合作的快乐和合作的重要性,从而引导学生广泛交流,主动寻求合作,互相帮助共同进步.3.2智育价值3.2.1开发智力培养能力的价值这是一个研究性学习的学习过程.虽然有研究提纲,但也仅限于研究的方向,具有高度的开放性,需要学生自己提出问题,并想方设法解决问题.因此,这是一个锻炼和提高问题解决能力的好机会.有了研究的方向,学生首先对杨辉三角进行观察、分析,通过感性认识进行归纳、抽象、概括提出问题,有利于培养学生思维的灵活性和思维的广阔性;对所提出的问题进行计算、演绎、推理、分析和判断得出结论,然后加以论证或否定,有利于培养学生思维的深刻性和思维的批判性.在这个过程中,学生的思维能力、运算能力、空间想象能力都得到了锻炼和提高,有利于形成和提高分析问题和解决问题的能力,起到了开发智力培养能力的作用.3.2.2培养数学应用的意识和能力的价值使学生学会从事社会主义现代化建设事业或进一步学习所必须的数学知识,培养学生数学应用的意识和能力,是中学数学的教学目的之一.通过对杨辉三角的研究,不仅使学生所学的知识得以巩固和加强,还使学生感到自己的所学有了用武之地,提高了学生学习数学的兴趣以及数学应用的意识和能力.特别是有一组的同学,使用Gbasic 语言编程,运用计算机这一现代化手段,打印出了杨辉三角、杨辉三角的0-1三角和西尔平斯基衬垫,这一“开拓性”的工作,使学生受到了巨大的鼓舞.3.2.3培养科学研究的意识和能力的价值现代教育需要培养创新型的人才,而培养学生科学研究的意识和能力,是培养创新精神的重要方面;现代社会的发展需要人才的知识结构不断更新,因此,学习将伴随人们的终身,学校教育肩负着培养学生终身学习能力的重任,要使学生掌握与现代社会发展相适应的学习方法.指导学生对杨辉三角的研究,使学生了解了科学研究和研究性学习的过程和方法,为进一步培养和提高自学能力、科学研究能力奠定了基础.3.3美育价值杨辉三角中的数字都关于中轴线对称;边长为n2的杨辉三角的0-1三角,关于“三条高线”都对称;西尔平斯基衬垫也具有上述性质; 体现了数学的对称美.杨辉三角的0-1三角还可由下面的作出:先由三个边长为2的杨辉三角(如图7-1),方法拼成边长为4的杨辉。

杨辉三角融入二项式定理的教学实践及反思

杨辉三角融入二项式定理的教学实践及反思

杨辉三角融入二项式定理的教学实践及反思杨辉三角形是数学中一种非常有趣且富有规律性的图形,与二项式定理有着密切的关系。

在教学过程中,我将杨辉三角形融入到二项式定理的教学中,通过实践教学,使学生更好地理解和掌握这两个概念。

在教学中,我首先向学生介绍了杨辉三角形的构造方法。

我告诉学生,杨辉三角形是由每个数等于它上方两数之和构成的,顶端的1是起始数。

我让学生自己动手构造一个杨辉三角形,并让他们观察这个图形的规律。

通过实际操作,学生对杨辉三角形的构造规律有了更深刻的理解。

接下来,我向学生介绍了二项式定理的概念。

我告诉他们,二项式定理是用来展开(a+b)^n的公式,其中a和b是任意实数,n是正整数。

我给学生讲解了二项式的展开规律,并给出了具体的数值例子,帮助学生更好地理解这个概念。

然后,我将杨辉三角形与二项式定理结合起来,告诉学生杨辉三角形每一行的数值实际上就是(a+b)^n展开式中的系数。

通过这种方式,学生能够更直观地理解二项式定理的应用。

为了加深学生的理解,我设计了一些练习题供学生完成。

题目包括两部分,一部分是要求学生根据杨辉三角形的规律,写出二项式展开式中的系数,另一部分是给了一个二项式展开式,要求学生根据系数反推出杨辉三角形的对应行。

通过这些练习,学生既能够运用杨辉三角形构造规律来解题,也能够通过反推的方式加深对二项式展开的理解。

在实施教学的过程中,我发现学生对于杨辉三角形的构造规律理解较快,但是对于如何将杨辉三角形与二项式定理联系起来,以及如何应用二项式定理解题还存在一定的困惑。

这让我意识到,在教学中需要更加注重对于二项式定理的引导和解释。

我在后续的课堂上针对这一问题进行了针对性的讲解和练习,以帮助学生更好地掌握这个概念。

将杨辉三角形融入到二项式定理的教学中是一种有效的教学方法。

通过实践教学,学生能够更好地理解和掌握杨辉三角形和二项式定理的基本概念,并且能够灵活运用这些概念解决问题。

通过对教学过程的反思和调整,我也不断提高了自己的教学水平,为学生提供更优质的教学内容和方法。

杨辉三角应用

杨辉三角应用

1杨辉三角概述1.1 杨辉三角的产生唐代以来一些数学著作的失传,大概是五代十国分裂战乱所造成的文化后果。

到了宋代,雕版印数的发达特别是活字印刷的发明,则给数学著作的保存与流传带来了福音。

事实上,整个宋元时期(公元960—1368),重新统一了的中国封建社会发生了一系列有利于数学发展的变化。

商业的繁荣、手工业的兴盛以及由此引起的技术进步(四大发明中有三项——指南针、火药和活字印刷是在宋代完成并获得广泛应用),给数学的发展带来新的活力。

这一时期涌现的优秀数学家中最卓越的代表,如通常称“宋元四大家”的杨辉、秦九韶、李治、朱世杰等,在世界数学史上占有光辉的地位;而这一时期印刷出版、记载着中国古典数学最高成就的宋元算书,也是世界文化的重要遗产。

北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算,他的主要贡献是创造了'贾宪三角'和增乘开方法,增乘开方法即求高次幂的正根法。

南宋数学家杨辉在《详解九章算法》(1261年)记载并保存了“贾宪三角”,故称杨辉三角。

元朝数学家朱世杰在《四元玉鉴》(1303年)扩充了“贾宪三角”成“古法七乘方图”(如下图)。

在欧洲直到1623年以后,法国数学家帕斯卡在13岁时发现了“帕斯卡三角”。

杨辉,字谦光,北宋时期杭州人。

在他1261年所著的《详解九章算法》一书中,辑录了如上所示的三角形数表,称之为“开方作法本源”图。

同时,这也是多项式(a+b)n打开括号后的各个项的二次项系数的规律。

因此,杨辉三角第x层第y项直接就是(y nCr x)。

我们也不难得到,第x层的所有项的总和为2x-1 (即(a+b)x中a,b都为1的时候) 。

上述(a nCr b) 指组合数。

而这样一个三角在我们的奥数竞赛中也是经常用到,最简单的就是要找规律。

简单的说,就是两个未知数和的幂次方运算后的系数问题,比如(x+y)的平方=x的平方+2xy+y的平方,这样系数就是1,2,1这就是杨辉三角的其中一行,立方,四次方,运算的结果看看各项的系数,你就明白其中的道理了。

输出杨辉三角形设计报告(1)资料

输出杨辉三角形设计报告(1)资料
解法二:
首先定义一个二维数组,长度为21,21,。接着定义三个变量i,j,n。然后输出提示字符,提示输入杨辉三角行数。将每一行第一个数字和最后一个数字的初始化置于双重for循环中,减少一个循环,并计算每一行中间的各个数字。最后用双重for循环输出每一个素质并且换行。
三、详细设计(1)
主要功能模块 1 源程序
1、要熟练掌握相关的C语言知识。
2、要熟练掌握杨辉三角的基本规律。
1杨辉三角第n行中的n个数之和等于2的n-1次幂。
2每个数字都等于它上方的两数之和。
3每行数字左右对称,由1开始逐渐变大。
4第n行的数字有n+1项。
5(a+b)的n次幂的展开式中各项系数依次对应杨辉三角第n+1行中的每一项。并由二项式系数规律推出公式:k=k*(i-j)/j。
开发环境
本程序采用Microsoft Visual C++ 6.0的英文版本进行编译。Visual C++是微软公司推出的基于Windows操作系统的可视化C++编程工具。
二、总体设计(1)
系统功能需求分析
此系统的主要功能是用四种不同的方法输出杨辉三角的前n(1<n<20)行。要实现目标就要完成以下步骤:
1、函数的定义出现错误,遗漏函数的声明。
2、定义精度出现问题。
3、大括号上下括号对应出错,下括号掉了,导致程序无法运行。
4、C语言书写错误,掉了字母或写错字母。
5、C语言知识不熟练,无法使用多种方法输出杨辉三角形。
6、一位数组中的变量出现错误,导致程序崩溃。
问题的解决方法
1、补充函数的声明。
2、重新定义精度。
int i,j,n;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 杨辉三角实验报告

学生姓名: 学 号: 11317119 学 院: 专 业: 计算机科学与技术 题 目: 杨辉三角 指导教师

2013年10月14日 - 1 -

目 录 1 问题描述 ................................................................................... - 0 - 2 需求分析 ................................................................................... - 0 - 3、概要设计 ................................................................................. - 1 - 3、概要设计 ................................................................................. - 1 - 3.1抽象界面设计 .......................................................... - 1 - 3.2总体框图以及功能描述 .......................................... - 2 - 3.3基本功能实现 .......................................................... - 2 - 4 详细设计 ................................................................................... - 2 - 4.1数据类型的定义 ...................................................... - 2 - 4.2主要模块的算法描述 .............................................. - 3 - 5 测试分析 ................................................................................... - 5 -

6、实现总结 ................................................................................. - 7 - 附录(主要源程序清单) ........................................................... - 8 - 1 问题描述 利用VS环境编写一段代码实现一维数组,二维数组以及交错数组输出杨辉三角。 设计要求: (1) 符合课题要求,实现相应功能; (2) 要求界面友好美观,操作方便易行; (3) 注意程序的实用性、安全性,易操作性。

2 需求分析 (1)逐行打印出二项展开式(a+b)i的系数,以为杨辉三角就是以这样的数值组成的。(如下所示) 杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 (2)输入要求:本程序中,需要用户输入杨辉三角的行数,以创建一个动态的杨辉三角的输出形式,并在文本框中显示出杨辉三角形。 (3)输出要求:为确保图形的美观输入杨辉三角的级数以12为宜。

- 1 -

3、概要设计 3.1抽象界面设计 利用VS平台,创建一个新项目,设计出杨辉三角运行输出的界面。(如图所示) - 2 - 3.2总体框图以及功能描述

3.3基本功能实现 (1)实现一维数组输出杨辉三角 private void button1_Click(object sender, EventArgs e) (2)实现维维数组输出杨辉三角 private void button2_Click(object sender, EventArgs e) (3)实现交错数组输出杨辉三角 private void button3_Click(object sender, EventArgs e)

4 详细设计 4.1数据类型的定义 (1)一维数组实现杨辉三角的数组定义 int[] a = new int[n];//定义一维数组,存储杨辉三角值 (2)二维数组实现杨辉三角的数组定义

一维数组 二维数组 交错数组 杨辉三角图形 杨辉三角图形 输入杨辉三角行数 杨辉三角图形

杨辉三角 - 3 - int[,] a = new int[n, n];//定义二维数组 (3)交错数组的数组定义 int[][] a = new int[n][];//定义交错数组,由于杨辉三角的行 //动态,而每一行的数值数不等所以如此定义

4.2主要模块的算法描述

(1)一维数组: private void button1_Click(object sender, EventArgs e) { listBox1.Items.Add("* ** ** 一位数组实现 ** ** *"); int n = System.Convert.ToInt32(textBox1.Text); int i, j, m = 2 * n; int[] a = new int[n]; string L = new string(' ', m); for (i = 0; i < n; i++)//i控制着行数,即当前打印到第i行 { a[i] = 1;//初始化一行中最后一个元素为1 j = i - 1;//第3行才开始本循环 while (j > 0) { a[j] += a[j - 1];//赋值前yh[j]实际上是前一行的数据, // 即[i-1]行的数据,所以此处重新赋值yh[j-1]+yh[j], // 赋值后yh[j]才变成当前行需要的数据。 j--; } for (j = 0; j <= i; j++)//输出一行中的数据 { L = L + System.Convert.ToString(a[j]) + " "; } listBox1.Items.Add(L); listBox1.Items.Add(" "); L = new string(' ', m -= 2); } listBox1.Items.Add("* ** ** ** ** ** ** ** ** ** ** ** *");

} (2)二维数组 private void button2_Click(object sender, EventArgs e) { listBox1.Items.Add("* ** ** 二维数组实现 ** ** *"); int n = System.Convert.ToInt32(textBox1.Text); int i, j; - 4 -

int[,] a = new int[n, n];//定义二维数组 for (i = 0; i < n; i++) //i控制行数 { a[i, i] = 1;//每一行最右边赋值为1 a[i, 0] = 1;//把第1行左边的元素都赋1 } for (i = 2; i < n; i++)//其余元素的值由杨辉公式计算

for (j = 1; j <= i - 1; j++) a[i, j] = a[i - 1, j - 1] + a[i - 1, j];//杨辉公式 for (i = 0; i < n; i++)//遍历数组输出杨辉三角形 { string st = new string(' ', 2 * n - 2 * i);

for (j = 0; j <= i; j++) st += System.Convert.ToString(a[i, j]) + " "; listBox1.Items.Add(st); listBox1.Items.Add(" "); } listBox1.Items.Add("* ** ** ** ** ** ** ** ** ** ** ** *");

} (3)多维数组 private void button3_Click(object sender, EventArgs e) { listBox1.Items.Add("* ** ** 交错数组实现 ** ** *"); int i; int n = System.Convert.ToInt32(textBox1.Text); int[][] a = new int[n][]; for (i = 0; i < n; i++) { a[i] = new int[i + 1]; for (int j = 0; j < a[i].Length; j++) { if (j == 0 || j == i) { a[i][j] = 1; } else { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } } }

相关文档
最新文档