实验1.1水手、猴子和椰子问题:五个水手带了一只猴子来到南太平洋的一个荒岛上,发现那里有一大堆椰子。由于旅途的颠簸,大家都很疲惫,很快就入睡了。第一个水手醒来后,把椰子平分成五堆,将多余的一只给了猴子,他私藏了一堆后便又去睡了。第二、第三、第四、第五个水手也陆续起来,和第一个水手一样,把椰子分成五堆,恰多一只给猴子,私藏一堆,再去入睡,天亮以后,大家把余下的椰子重新等分成五堆,每人分一堆,正好余一只再给猴子,试问原先共有几只椰子?算法分析:求解这一问题可以用迭代递推算法。首先分析椰子数目的变化规律,设最初的椰子数为p,即第一个水手所处理之前的椰子数,用p、p、p、p、43102p分别表示五个水手对椰子动了手脚以后剩余的椰子数目,则根据问题有54?(?1),(k=0,1,2,3,4)ppkk?15x表示最后每个水手平分得到的椰子数,于是有再用1x?(?1)p55所以?5x?1p5利用逆向递推的方法,有5??1,(k?4,3,2,1,0)pp1k?k4有了逆向递推关系式,求解这一问题似乎很简单,但由于椰子数为一正整数,用任意的x作为初值递推出的p数据不一定是合适的。0forbreakxpx和,对任意的语句来寻找合适的这里用循环语句结合0px再次递推计算出,当计算结果为正整数时,结果正确,否则选取另外的0p为正整数为止。重新递推计算,直到计算出的结果0MATLAB编程代码:(1)n=input('输出n的值:');forx=1:np=5*x+1;fork=1:5p=5*p/4+1;endifp==fix(p)breakendenddisp([x,p])输出结果:输出n的值:1500102315621(2)forx=1:infp=5*x+1;fork=1:5p=5*p/4+1;endifp==fix(p)breakendenddisp([x,p])输出结果:102315621C语言编程代码:#include<stdio.h>intcount(int);voidmain(){inti,n,y;牰湩晴?输入水手数:\n);scanf(%d,&n);y=count(n);for(i=0;i<n;i++){printf(%d\n,y);y=(y-1)/5*4;}}intcount(inta){m,i,k=1,ok=0;intfor(i=1;;){if(i==1)m=k;if((k*5+1)%4==0){k=(k*5+1)/4;i++;}else{k=++m;i=1;}if(i==a&&ok<4){ok++;k=++m;i=1;}if(i==a&&ok==4)break;}return(k*5+1);}实验1.3绘制Koch分形曲线问题描述:从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的另两条边代替,形成具有5个结点的新的图形(图1);在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的另两条边代替,再次形成新的图形(图2),这时,图形中共有17个结点。这种迭代继续进行下去可以形成Koch分形曲线。在迭代过程中,图形中的结点将越来越多,而曲线最终显示细节的多少取决于所进行的迭代次数和显示系统的分辨率。Koch分形曲线的绘制与算法设计和计算机实现相关。P设5个点)的过程,(2个点)产生第一个图形(问题分析:考虑由直线段1P分别为原始直线段的两个端点。现在需要在直线段的中间依次插入三个点和5PPP,,PP点右端直线段的三分之。显然,1产生第一次迭代的图形(图)位于12432.(逆时针方向)一处,60度点绕旋转PP24经正而得到的,故可以处理为向量PP42形成算法如下:交变换而得到向量,PP32;1)(3/P?P)P?P?(1521;(2)3/P)P?P?2(P?1541T(3);A???P?(PP)P2423A在算法的第三步中,为正交矩阵。????sincos???33;?A??????cossin??33??PP个结点的坐标。1中和5点的坐标),产生图这一算法将根据初始数据(51P的坐标,这一矩阵的第一行为为5个结点的坐标数组,组成一个×2矩阵。这51PPP的坐标。矩阵的第一列的坐标,第二行为第二行为的坐标……第五行为512yx坐标。,第二列元素分别为5元素分别为5个结点的个结点的坐标问题思考与实验:k次迭1)考虑在Koch分形曲线的形成过程中结点数目的变化规律。设第(1?knnnn之间的递推,试写出和代产生结点数为,第迭代产生结点数为1kkkk?1?关系式;52的过程,即由第一次迭代的)(2参考问题分析中的算法,考虑图1到图个结点的结点坐标数组,产生第二次迭代的17个结点的结点坐标数组的算法;k1k?n次迭代的)考虑由第次迭代的个结点的结点坐标数组,产生第(3kn个结点的结点坐标数组的算法;1k?。Koch分形曲线(图3)4()设计算法用计算机绘制出如下的次迭代产生的结点数k(1)第算法分析:次迭第k+1为错误!未找到引用源。,错误!未找到引...