當前位置:首頁 » 操作系統 » 演算法折紙

演算法折紙

發布時間: 2022-07-29 07:07:29

A. 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;
}

B. c++折紙問題 急!!!

這是一道二維的最大字串和問題 。

一維的最大連續字串和 應該會求吧, 畢竟是經典的dp。
二維的話, 例如一個 4 * 4 的矩陣
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
可轉化成下面的1維序列:
(1) 0,-2,-7 ,0 (1行)
(2)9, 2,-6, 2 (2行)
(3)-4, 1, -4, 1 (3行)
(4) -1, 8, 0, -2 (4行)
(5) 9, 0,-13, 2 (1+2)
(6) 5, 3,-10, 3 (2+3)
(7)-5,9,-4, -1 (3+4)
(8) 5, 1, -17, 3 (1+2+3)
(9)4, 11, -10, 1 (2+3+4)
(10) 4, 9, -17, 1 (1+2+3+4)
然後求這些字串的最大和 。 復雜度為(n^3)
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 502;
int arr[maxn];
int mat[maxn][maxn];
int N, M;
int sum[maxn][maxn];

int dp() {
int b = 0, sum = 0;
for ( int i = 1; i <= N; i++ ) {
if ( b > 0 )
b += arr[i];
else
b = arr[i];
if ( b > sum )
sum = b;
}
return sum;
}
int main() {
int i, j, k;
int max;
while ( cin >> N >> M) {

for ( i = 1; i <= N; i++ )
for ( j = 1; j <= M; j++ ) {
scanf( "%d", &mat[i][j] );
}
N = N > M ? N : M;
memset( sum, 0, sizeof( sum ) );
for ( j = 1; j < N; j++ )
for ( i = 1; i <= N; i++ )
sum[i][j] = sum[i - 1][j] + mat[i][j];
max = 0;
int temp;
for ( i = 1; i <= N; i++ )
for ( j = i; j <= N; j++ ) {
for ( k = 1; k <= N; k++ ) arr[k] = sum[j][k] - sum[i - 1][k];
temp = dp();
if ( max < temp ) max = temp;
}
cout << max << endl;
}
}
這是我曾經寫的代碼, 你提交試試,|X| <= 10^4,這個范圍有的尷尬。 如果最後幾組錯了, 應該是數據溢出, 把int 改為 long long 就可以了

C. 一張紙可以對折多少次,到底是幾次

1、生活中我們無論拿出什麼樣紙張,對折不會超過9次。

2、Britney Gallivan在2001年(那時候他還是個高中學生)提出一個函數,他能把一張紙對折12次。之前人們一直以為不管多大的紙最多隻能對折8次。

(3)演算法折紙擴展閱讀:

折紙數學指的是對折紙藝術從數學的角度加以研究。例如,研究某個特定的紙模型的可展性以及使用折紙來解數學方程。

折紙解釋

某些經典幾何作圖問題例如三等分角,或者將立方體的體積擴大一倍(倍立方)等問題都被證明為尺規作圖不可能解決的。但是它們可以通過幾個折紙步驟加以解決。

一般地,折紙可以通過作圖求解不超過4次的代數方程。Huzita-Hatori 公理集是這一領域的重要研究成果。

折紙簡述

作為利用幾何概念對折紙進行研究的結果,Haga定理可以用來把紙的一邊精確地三等分、五等分、七等分和九等分。

其他定理則允許我們從正方形折出其它圖型,例如等邊三角形、正六邊形、正八邊形以及特定的矩形比如黃金矩形和白銀矩形等。

折紙演算法

從帶有摺痕的平紙重新折出原來的形狀這一問題已被Marshall Bern和Barry Hayes證明為NP完全問題。其它技術上的結果在《幾何折紙演算法》一書第二部分有更詳細的介紹。

D. 那些復雜的折紙藝術是怎麼想到的

其實折紙設計,需要從模仿開始,用不會引起歧義的貶義詞叫「天下文章一大抄」這個也適合折紙,當然我沒有貶義。設計中大概是這樣,有22.5度設計,蛇腹折,需要考慮雙色(是的,最近的折紙設計都在要求合理的布局雙色,而它的理論還沒出來),需要考慮自鎖結構(讓折紙更加穩固,而不至於折好後需要特別多的膠水),需要考慮鑲嵌(大多時候用來作為鱗片)。

E. 要成為現代折紙高手是否必須有一定數學基礎如何理解現代折紙和數學的關系

拍案驚奇,原來折紙背後的數學如此強大 折紙戢戢然,演算法蘇蘇然 折紙又見折紙 首先果殼已有的以上三篇文章已經分別從不同角度介紹了折紙以及折紙數學之間的關系,以下不再贅述。 要回答這個問題還要弄清楚兩個概念: 我對現代折紙的定義是:指使用單張紙質材料通過手工折疊創造的可視靜態空間形象藝術 定義里明確了「單張紙」(至於「錫紙」是不是「紙」的問題就姑且不討論了……)就是說所有的造型細節通過這單張紙的合理分配完成,「手工折疊」限定了不使用其他輔助工具(包括剪刀、膠水雲雲……),當然不使用工具就不拼貼也不裁減了。把折紙歸到造型藝術中,當然就是用眼睛欣賞的視覺藝術了。還有就是作品成形後不再是平面的東西,而成為空間立體的了。這個定義中沒有明確限製作品使用紙張的形狀,這里的細分可以理解為不同流派。 比較困了,語無倫次神馬的可以理解哈~~~~~~~~~ 2、神馬是折紙創作的過程 我對現代折紙創作過程的定義是:以幾何數理為理論依據,對作品比例、結構、色彩、形態、質感等多方面的考量和處理,是手工技術與折疊藝術的綜合創作過程。 這里提到的理論依據看過那三篇文章的就很好理解了(角平分線、中位線、對稱、等分雲雲……),創作折紙作品需要考慮的因素比較多,從紙的材質開始到紙張分配比例再到折疊技術、技巧的把握,以及作品整形、定型。 所以說好的折紙作品不僅造型生動而且結構巧妙。有詩為證:啊~~~~~~~~~折紙是建築,你欣賞的不止是造型還有結構;啊~~~~~~~~~折紙是詩歌,既有章法可循,卻又創意無限!好吧,這不是詩,還有這詩是我寫的~~~~~~~ 總之折紙是技術與藝術的結合,體驗與審美的統一。通過折紙,你可以站在藝術的角度審視科學,同樣可以站在科學的視角欣賞藝術。 就是這樣~~~~~~~~ 等一下,貌似我沒有回答」是否必須「啊~~~~~~~~ 其實是這樣的,不會算數的木匠可以建造符合工程學原理的吊腳樓,但是建築系畢業的高材生也可能會把大樓設計成」比薩斜塔「呀~~~~~~~ 還有就是科普作家沒有必要都是科學家吧,誰說只有作家才有資格教人識字了~~~~~~~~~ 聞道有先後,術業有專攻,交叉學科好可怕,文科生你傷不起~~~~~~~~這次真的木有了……

F. 折紙中蘊含的科學元素有哪些

http://www.langorigami.com/science/science.phpRobert

J.
Lang
有一些見解你可以參考,折紙的應用范圍還是很廣的,數學、時裝、裝飾、設計等等方面另外論壇有理論性的如:幾何折疊演算法(MIT)

G. 對折紙次數

對折一次,一張紙變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次.

H. 經濟日報評演算法!這為何變成了經營者算計消費者的工具

因為這樣一來,消費者可能消費更多,這樣企業的利潤就會更高。因此,它已成為運營商計算消費者的工具。打開購物軟體,你看到的產品是由演算法推出來的;打開信息軟體,你看到的新聞是由演算法推出來的;打開旅遊軟體,你看到的酒店是由演算法推出來的,價格很可能比別人貴——這樣的演算法真的讓消費者又愛又怕。中國消費者協會舉辦網路消費領域演算法監管與消費者保護論壇。中國消費者協會秘書長朱康橋根據近期消費者投訴、相關調查和相關媒體報道,將網路消費領域的演算法問題歸納為六大類,包括未知的網路游戲抽獎概率、熟悉的大數據、,復雜的網上促銷規則、網上搜索競價推薦、網上直播推送違反法律法規、公共秩序和良好習慣、刷好評和隱藏不良評論,使得評價結果呈現失真等。演算法已經成為運營商計算消費者的工具。

因此,該演算法需要嚴格的監督。在《個人信息保護法》、《反壟斷法》、《反不正當競爭法》、《價格法》等相關法律中,應增加演算法應用的相關規定,特別是要保證演算法應用的透明度、公平性和完整性。很明顯,操作人員應該使用演算法的可知性、可搜索性和可逆性。如有爭議,有義務向有關行政部門、司法機關和第三方機構提供演算法、背景資料、有關材料和說明。該演算法具有可驗證性、可解釋性和可解釋性。

I. 愛心桃盒子怎麼折最好有詳細的步驟和演算法

1.准備一塊長方形的紙,一面是紅色,一面是白色,在上面寫一個「愛」字,展開看顯示每邊半個字,這樣在折疊完的時候「愛」字會對在一起。

2.把紙翻到背面,從右上角向下折疊,兩邊都折一下,折出印子。

3.把底部白色部分也折上去。白色不要顯示出來。

4.把上面部分展開,反過來。

5.把上半部分沿著先前已經折出的中線向下折疊,再展開。

6.反過來。把左右兩邊向中間折疊。

7.從底部的左下角和右小角折疊到三角的頂部。

8.把左和右兩邊都向中間折疊。

9.中間對折一下再展開。

10.把底部的兩個角向上折疊,使其在中間吻合。

11.這時頂上出現三個角,兩個小的,一個大的。把大的那個角向下折疊。

12.把先前折疊好的兩個角塞進大角裡面。

13.把上面余留下的兩個角向下折疊。

14.把這兩個角也塞進大角里,就完成了。

15.完成後的效果。

J. 對於小伙僅用一張紙折出魔獸手辦這件事,你想說什麼

我只想說這個人真的是大寫的“牛”,真的太牛了,只用一張紙,而且完全沒有進行拼接和剪裁就能折出一個這么難的模型,由此可見,這個人是一個徹徹底底的天才。對於折紙,很多人的印象都停留在小時候,我們過家家玩的折紙,而且折紙也是當代小孩子手工課不可或缺的一課,因為折紙很能鍛煉小孩子的智力發展,不過,折紙也並不是這么簡單的,它也可以變得很神秘。

並且,在現在,很多人都喜歡並且沉迷於折紙藝術,但是這種藝術比起大眾的藝術來說,終究是小眾的,但是,它是很值得鼓勵的,因為折紙藝術經過改造能夠應用於很多地方,比如3D列印技術以及一些模擬技術,如果能夠將折紙編成演算法輸入電腦,相信能夠改良很多技術。

熱點內容
android使用at命令 發布:2025-01-18 20:54:51 瀏覽:216
phptiny 發布:2025-01-18 20:54:03 瀏覽:987
怎麼給漢字加密 發布:2025-01-18 20:49:44 瀏覽:865
遍歷javamap 發布:2025-01-18 20:39:05 瀏覽:624
我的世界租伺服器哪裡最便宜 發布:2025-01-18 20:38:50 瀏覽:564
dhcp伺服器地址租期時間怎麼調整 發布:2025-01-18 20:28:02 瀏覽:267
加密區的圖片 發布:2025-01-18 20:22:17 瀏覽:474
key文件加密 發布:2025-01-18 20:12:07 瀏覽:736
etl伺服器怎麼用 發布:2025-01-18 20:08:18 瀏覽:281
硫酸鎂演算法 發布:2025-01-18 19:53:00 瀏覽:670