折紙的演算法
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完全問題。其它技術上的結果在《幾何折紙演算法》一書第二部分有更詳細的介紹。