折纸的算法
A. 爱心桃盒子怎么折最好有详细的步骤和算法
1.准备一块长方形的纸,一面是红色,一面是白色,在上面写一个“爱”字,展开看显示每边半个字,这样在折叠完的时候“爱”字会对在一起。
2.把纸翻到背面,从右上角向下折叠,两边都折一下,折出印子。
3.把底部白色部分也折上去。白色不要显示出来。
4.把上面部分展开,反过来。
5.把上半部分沿着先前已经折出的中线向下折叠,再展开。
6.反过来。把左右两边向中间折叠。
7.从底部的左下角和右小角折叠到三角的顶部。
8.把左和右两边都向中间折叠。
9.中间对折一下再展开。
10.把底部的两个角向上折叠,使其在中间吻合。
11.这时顶上出现三个角,两个小的,一个大的。把大的那个角向下折叠。
12.把先前折叠好的两个角塞进大角里面。
13.把上面余留下的两个角向下折叠。
14.把这两个角也塞进大角里,就完成了。
15.完成后的效果。
B. 折纸的次数的计算方法
(1)你能发现纸的层数与折纸次数的关系吗?
第n层共有2的n次方层
(2)计算当你对折5次时,层数是多少?
2的5次方=32(层)
(3)(3)如果每张纸的厚度是0.05mm,求对折10次时总的厚度是多少?
2的10次方×0.05=1024×0.05=51.2(mm)
C. 对折纸次数
对折一次,一张纸变2层;再对折,变4层;对折3次,变8层……对折得次数为n时,纸有2^n层.
对折7次以后,共有128层纸,勉强还能对折.但8次后,共256层,对折一次就相当于同时折叠256张纸,这是极其困难的.
你可以试试对折一本500页(250张纸)以上和250页(125张纸)的书
折到第8折时这张纸已变成边长约6厘米、厚(高)约3厘米的长方体了,第9折时厚度就超过边长,难怪不能再折了
机器也只能折9次
算算就知道了.如果纸的厚度达到了折叠面的一半就很难折叠了,由此可以推算,如果纸为正方形,边长为a,厚度为h,当折叠一次的时候,折叠边长不变,厚度为2倍的h,折叠两次的时候,折叠边长为原边长的二分之一,厚度变为4倍的h,就这也折叠下去,可以推出一个公式:当折叠次数n为偶数次时,折叠边长为l/(2^(0.5*n)),厚度变为2^n*h,当满足n>2/3*(log2(l/h)-1)时无法折叠.根据一般的纸张的状况,厚度大约为0.1mm,边长为1m时,根据以上公式,可以得出n>8.1918时无法折叠,这意味着对于厚度大约为0.1mm,边长为1m的正方形纸,只能折叠8次.在考虑一下更大的纸,厚度不变,边长为1Km时,根据以上的公式,可以得出n>14.8357时无法折叠,即只能折叠14次.因此,对于能折几次与l/h的值有关,如果l/h为无限大,它的对数也为无限大,自然可折叠的次数也为无限大.当然这些都是从理论上得出的结论,至于如此大的纸是否可折,以及如何折就无法论证了.
最后一个问题,如果把一张1mm的纸折100次,可以算一下它的厚度2^100*0.001m=1267650600228229401496703205.376m=1.267e+27m,月球到地球的距离为40万公里左右,粗略为4e+8m,因此远远的超过了月地距离.
从理论上讲,如果纸张的厚度为零,可以进行无数次对折,但是,由于纸张实际厚度的存在,这种理论也就不存在,因为对折后纸张的宽度不能小于等于纸张的厚度,也就是说一张厚度为1mm的纸,对折后纸张的宽度应大于1mm.
所以,一张纸最多能对折多少次实际是一个变数,它取决于纸张的实际厚度与大小.把一张厚度为1mm的纸对折100次,其厚度可以超过地球至月球的距离也只是一个不切合实际的数学理论推理数字.
按实际测算,新板大原始纸张的大小是840mm×1188mm(大一开),也就是16张A4纸大小,如果设纸张厚度为1mm,其对折1次的大小应该是840mm×593.5mm(其中0.5mm是对折边损失),对折两次的实际大小是593.5mm×419.5mm,对折三次的大小就是295.75mm×419.5mm,也就是说每次对折后的实际大小都要减去对折边的厚度损失,(当然,如果不是对折,而是裁开的话这个损失就可不计算在内了)对折四次后纸张的大小应该是207.75×295.75,从理论上推算,当纸张折到第十六次的时候(不计对折边损失)大小应该是3.28125mm×3.330625mm,但是,如果计算对折损失,只能折到第十二次.
某些经典几何作图问题例如三等分角,或者将立方体的体积扩大一倍(倍立方)等问题都被证明为尺规作图不可能解决的.但是它们可以通过几个折纸步骤加以解决.一般地,折纸可以通过作图求解不超过4次的代数方程.Huzita-Hatori 公理集是这一领域的重要研究成果.
作为利用几何概念对折纸进行研究的结果,Haga定理可以用来把纸的一边精确地三等分、五等分、七等分和九等分.其他定理则允许我们从正方形折出其它图型,例如等边三角形、正六边形、正八边形以及特定的矩形比如黄金矩形和白银矩形等.
从带有折痕的平纸重新折出原来的形状这一问题已被Marshall Bern和Barry Hayes证明为NP完全问题[1].其它技术上的结果在《几何折纸算法》一书第二部分有更详细的介绍.[1]
对一张纸不断对折,其损失函数为 ,
这里 L 代表纸张的最小长度,t 代表纸张厚度,n 代表折叠次数.这个函数是Britney Gallivan在2001年(那时候他还是个高中学生)提出的,他能把一张纸对折12次.之前人们一直以为不管多大的纸最多只能对折8次.
D. C++程序:折纸游戏
#include<iostream>
#include<string>
using namespace std;
//两种算法,第一种算法效率高点,第二种算法生成的程序大小比第一种的小
/*bool compare(int *a,int m,int rsize)
{
int i,j;
for(i=0;i<m/2;i++)
{
for(j=0;j<m/2;j++)
{
if(a[i*m+j]!=a[(i+1)*m-1-j])
return false;
if(a[i*m+j]!=a[(m-i-1)*m+j])
return false;
}
}
for(i=m-1;i>m/2;i--)
{
for(j=m-1;j>m/2;j--)
{
if(a[i*m+j]!=a[(i+1)*m-1-j])
return false;
if(a[i*m+j]!=a[(m-i-1)*m+j])
return false;
}
}
return true;
}*/
bool compare(int *a,int m,int rsize)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(a[i*m+j]!=a[(i+1)*m-1-j])
return false;
if(a[i*m+j]!=a[(m-i-1)*m+j])
return false;
}
}
return true;
}
void main()
{
int *a;
int n=0;
int m=0;
string *b;
int i,j;
int rsize=0;
cout<<"请输入一个整数:";
cin>>n;
b=new string[n];
j=0;
while(j<n)
{
cout<<"请输入矩阵边长:";
cin>>m;
rsize=m*m;
a=new int[rsize];
cout<<"请输入矩阵:"<<endl;
for(i=0;i<rsize;i++)
cin>>a[i];
if(compare(a,m,rsize))
b[j]="Yes";
else
b[j]="No";
delete[] a;
j++;
}
cout<<"输出:"<<endl;
for(i=0;i<n;i++)
cout<<b[i]<<endl;
delete[] b;
}
E. 一张非常大的纸能对折几次
一张纸最多能对折几次,这看起来是个很无聊的问题。或许你会说只要给我一张足够大而薄的纸,我可以折一亿次。这话不假,理论上是可以折无数次。但在现实生活中,如果你拿张纸亲自测验后会惊奇地发现,一般很难超过7次,最多也就8,9次。据说最近的世界纪录是12次(就是图片中的那位超女)。
大家不禁要问,为什么一张纸对折仅仅数次之后就很难再折叠了呢?下面我们来分析一下:
1)每折一次都要以上次的厚度为半径进行对折,这个半径需要消耗纸的长或宽。
2)任何物质弯曲都有弹性,当厚度到一定程度的时候,是需要一定的长度才可以对折,不然就会断开。
3)对折n次的纸比相同层数简单叠放的纸的弹性要强很多,而且其厚度也不可能是以理论上2的n次方的方式增长。所以到一定厚度后,人手就很再难折叠了。
4)通过实际验证推导出单向折叠公式,单位圆直径为0.1mm
,运用极限法,设一张纸折叠一次(折成一单位圆)所消耗的长度(单位圆的直径0.1∏mm)为一个基准单位Q(Q=0.1∏)。n为折叠的次数,L为消耗纸的长度。根据以下的推理可得出
折纸单向对折公式:L=0.1∏*(2^n
+4)*(2^n-1)/6
Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
9Q
10Q
...16Q
17Q
...32Q
33Q...64Q...
n=1
1
n=2
2
1
n=3
3
2
1
n=4
4
3
2
2
1
1
1
1
n=5
5
4
3
3
2
2
2
2
1
1
...
1
n=6
6
5
4
4
3
3
3
3
2
2
...
2
1
...
1
n=7
7
6
5
5
4
4
4
4
3
3
...
3
2
...
2
1
...1
...
L=0.1∏*(2^n+4)*(2^n-1)/6
若一张0.1mm厚的纸对折21次,那么它的厚度就达到10万多千m(地球与太阳的距离1.5万千m)。我们很难想象薄薄的一张纸仅折叠20次以后就能达到如此惊人的厚度。生活中有很多鲜为人知的事情其实就在我们身边,只要你善于观察和分析,其中的乐趣自然是妙不可言。
F. 一张纸可以对折多少次,到底是几次
1、生活中我们无论拿出什么样纸张,对折不会超过9次。
2、Britney Gallivan在2001年(那时候他还是个高中学生)提出一个函数,他能把一张纸对折12次。之前人们一直以为不管多大的纸最多只能对折8次。
(6)折纸的算法扩展阅读:
折纸数学指的是对折纸艺术从数学的角度加以研究。例如,研究某个特定的纸模型的可展性以及使用折纸来解数学方程。
折纸解释
某些经典几何作图问题例如三等分角,或者将立方体的体积扩大一倍(倍立方)等问题都被证明为尺规作图不可能解决的。但是它们可以通过几个折纸步骤加以解决。
一般地,折纸可以通过作图求解不超过4次的代数方程。Huzita-Hatori 公理集是这一领域的重要研究成果。
折纸简述
作为利用几何概念对折纸进行研究的结果,Haga定理可以用来把纸的一边精确地三等分、五等分、七等分和九等分。
其他定理则允许我们从正方形折出其它图型,例如等边三角形、正六边形、正八边形以及特定的矩形比如黄金矩形和白银矩形等。
折纸算法
从带有折痕的平纸重新折出原来的形状这一问题已被Marshall Bern和Barry Hayes证明为NP完全问题。其它技术上的结果在《几何折纸算法》一书第二部分有更详细的介绍。