第六回 芬奇 “蛋”千年迷坑,阿蘭 “喚”芝麻開門
2. 6第六回 芬奇 “蛋”千年迷坑,阿蘭 “喚”芝麻開門
上一節說到古代中國著名數學家祖沖之先生留心生活,最終以發現圓周率而名垂青史,而在祖老先生死去將近一千年後,在歐洲出現了著名的文藝復興運動,這期間也有一位有名的人物以圈圈而得名,他不是跑圈,而是畫雞蛋,他就是達•芬奇。達芬奇畫圈最終的目的是做畫,直到現在,他的名畫蒙娜麗莎還用那迷人的微笑盯著世人,迷人的微笑背後,有許多故事等著人們破解,千百年來,無數仁人志士更是樂此不疲。
本回的重點是,在數字中來遊戲,數字的妙處在這裡,寓樂於數。
2.6.1 P6蒙娜麗莎的微笑
圖2.6.1 達•芬奇和他迷人微笑
列奧納多•達•芬奇(Leonardo da Vinci,1452-1519),義大利文藝復新時期最負盛名的藝術大師,科學家。他生於佛羅倫薩郊區的芬奇鎮,卒於法國。達•芬奇是人類智慧的象徵,他懷有神靈般的無限理想,試圖重新創造世界的美,量度世界的廣大無垠,解釋世界的奧祕。可是他只有常人的生命和力量。他的抱負是發現一切、研究一切、創造一切。他的生命是一條沒有走完的道路,路上撒滿了崇高的未完成作品的零章碎片,他在臨終前心酸地說:“我一生從未完成一項工作。”
據說,法國著名的盧浮宮有三件寶:一是《米洛斯的阿芙羅狄德》;二是《薩莫色雷斯的勝利女神》;三是《蒙娜麗莎》。前兩件作品出於誰人之手一般人並不確知,但是,《蒙娜麗莎》出自義大利文藝復興時期的達•芬奇卻幾乎家喻戶曉。“蒙娜麗莎”那神奇而專注的目光,那柔潤而微紅的面頰,那由內心牽動著的雙脣,那含蓄、模稜兩可的微笑,總讓人琢磨不透……
她為什麼微笑呢,他笑什麼呢,她究竟是誰呢,和達•芬奇關係如何呢,她的年齡有多大呢?問題越來越多,關於這幅畫和達•芬奇的故事也越來越多。
其實,在達•芬奇的出生年代裡蘊藏著一個祕密,蒙娜麗莎的年齡,前兩個數位的差和後兩個數位的差,組成了她的芳齡。我們的問題是:你能用電腦算出蒙娜麗莎的年齡嗎?
2.6.2 五步積木法解題:
第一步:三積木
這是最簡陋的一個圖形(如圖1),也是最基本的一步。
圖1
圖2
第二步:做頭尾
上面的三部分,先分析開頭和結尾部分,開頭是什麼呢?題中的已知可輸入條件,也就是達•芬奇的出生年代。結尾是什麼呢?本題中要求得的一個結果,即蒙娜麗莎的年齡。
圖3
圖4
第三步:連頭尾
如何將開頭和結尾連線起來呢?也就是ageL和ageM的關係,直接聯絡不上,必須再行分解,因為有關係的是ageL的四個位和ageM的兩個位,所以中間處理部分可分解成兩部分,一是據ageL求出四個位n1-n4,後面則是據n1-n4求出ageM的兩個位(圖3)。下面一部分一部分地來,先求第一部分:
怎樣求呢?一眼就能看出來n1=1,n2=4,n3=5,n4=2,但直接用眼看顯然還不行,還要想想用個什麼公式。先看看n1和1452之間有什麼關係嗎?首先要取得其中的第一個位,怎樣才能得到第一個位呢?可以先將1452/1000,但得到的是個小數1.452,我們要的是整數,只要將小數部分捨去就行了,所以可以通過下面的公式實現n1=int(ageL/1000)。那第二個呢?如果只有三位,方法和求n1一樣;怎樣得到三位數呢?因為求出了n1,可以利用n1,只要將1452-n1*1000就得到了,公式也就有了:n2=int((agel-1000*n1)/100),後面兩個也就簡單了。
再求第二部分:
有了四個位上的數n1-n4,ageM的兩個位也就有了,m1=n2-n1,m2=n3-n4,這樣,ageM就有了,只要將兩個位m1,m2組合到一起就OK,ageM=m1*10+m2(如圖4所示)。
第四步:貼語法
下面我們還用QBASIC語言來解這個題目,其實和第一種本質上是一樣的。第三步圖中的各個語句和具體語言的語法還有一定的差距,根據相應語言,還要再行將相應語句轉化。本題中主要是輸入和輸出,再就是中間的部分內容,由於公式較長,非常容易出錯,需特別注意(如圖5示)。
圖5
第五步:寫程式碼
下面可以寫程式碼了,但問題是在Scratch中沒有int()這樣一個函式來表示取整,其中有一個是取餘數的,所以還需要從取整數變換成取餘數。基本的將一個大數拆分成各個位的方法是不變的,要變的是如何拆的工具。
1452拆出千位1來,可以用這個數本身1452減去452,得到1000,然後除以1000得到,452怎麼來的,正好是1452除以1000的餘數。而拆第二個位時,即1452中的4時,其方法和上面差不多,需要先得到400,而1452除以1000的餘數是452,如何得400,再減去52就有了,52則是1452除以100之後的餘數。兩個餘數相減,得到了數位。有了第二位的經驗,第三位也就有了,第四位也有了,因為第四位是最後一位,其實可以更簡潔。
圖2.6.2 Scratch積木程式碼
2.6.3 阿蘭開講
程式演義到現在,還象兒時的達芬奇在畫蛋,祖沖之在跑圈,直到現在,我們遇到的所有程式設計故事,簡單到令人不齒的地步,腦子不需拐彎竟然能將題目做出?!這些就是我們生活中常用到的問題,順序類問題!也正是重複跑圈的意義所在,正是這種重複的一個個圈,最終鑄就了科學和文藝的大師。而我們什麼時候才能從圈圈中跑出來呢?
達芬奇畫蛋,祖沖之跑圈,看似風牛馬不相及的東西跑到了一起,最終卻都成就了一代宗師,真是英雄所見略同啊!無數次的重複過後,見證了兩位大師的心路歷程。先有簡單,才有複雜;先不會拐彎,才會越來越轉變。
阿蘭告訴大家的是:是什麼促使我們去解開更多的歷史事件真相呢?從蒙娜麗莎的身上,我們不難發現,是對於美的追求,更是一種好奇心!程式設計亦然,生活中有許多有價值的東西等著你去發現呢!
這種美,有時候更是一個線索,是我們發現更復雜問題的線索,蒙娜麗莎微笑背後的故事也許正是它!
後面我們還將奉獻上這樣一些有意思的題目,欲知後事如何,且聽下節分解。
2.6.4 小測驗
哥倫布水杯的第三種解法
哥倫布在發現新大陸後,在慶功宴上提出了一個問題,將桌上的兩杯水給從另外一杯子中換過來,他的辦法是找來第三隻杯子,現在如果讓我們通過電腦解題,而又不允許使用第三隻杯子,該如何是好呢?
小測驗參考答案:
我們重新審視P1哥倫布水杯問題時,不難發現第三種解法!用電腦解題,完全可以扔掉第三隻杯子! 最重要的三句程式碼如下:
a=a+b
b=a-b
a=a-b
相關文章
- 智慧家居新體驗 進門只需喊聲“芝麻開門”
- 為什麼每個人都該知道阿蘭·圖靈?圖靈
- 迷霧探險10 | 踩坑Gym
- 計算機之父阿蘭·圖靈傳奇的一生計算機圖靈
- 【計算機之父:阿蘭.圖靈】- 紀念誕辰 105 週年計算機圖靈
- 紀念阿蘭·圖靈誕辰,評選“精彩·好訪談”(圖靈訪談)圖靈
- 卡特蘭(Catalan)數入門詳解
- 程式演義第一四回 高斯課堂巴掌助興,阿蘭用心二解迴圈
- 第一回 哥倫布水杯戲權貴,阿蘭煮酒論程式設計程式設計
- 程式演義第一二回 韋達破敵魔法助陣,解題阿蘭公式立功公式
- H5喚起APP指南(附開源喚端庫)H5APP
- 打破次元壁!《蛋仔派對》“超燃蛋友會”主題活動火爆開啟
- 世界五千年 筆記筆記
- 圖靈的祕密——紀念阿蘭·圖靈誕辰100週年連載文章之二圖靈
- 圖靈的祕密——紀念阿蘭·圖靈誕辰100週年連載文章之一圖靈
- 撥開JS事件的迷霧(一)JS事件
- 給三千年後的你
- 0.開個新坑,湍流基礎理論入門
- 腦洞大開的無人機設計:形似駝鳥蛋無人機
- Win10網路喚醒功能如何開啟 win10網路喚醒功能怎麼開啟Win10
- 阿爾卡特POP4系列新機上手 入門好選擇
- 走迷宮
- Laravel 入門有感!籃球場,我來了,畫蛋真的很重要!Laravel
- Docker 從入門到掉坑Docker
- 史上最全 Terraform 入門教程,助你無坑入門!ORM
- Next.js踩坑入門系列(四)— 中期填坑JS
- 一場跨越千年的開拓之旅,《世界啟元》野蠻測試今日開啟!
- 撥開SAP與Hadoop整合的迷霧LLHadoop
- flutter前端入門踩坑記錄Flutter前端
- 微信公眾號-入門的坑
- 開源書和開源技術-PDF中蛋疼的中文字型
- HDU 2570 迷瘴
- 509迷宮
- 達芬奇18 達芬奇Mac版 蘋果電腦版安裝Mac蘋果
- 老闆說了,線上再出現慢查詢,開發就滾蛋!
- 面試官:select、poll、epoll有何區別?我:阿巴阿巴...面試
- 阿爾卡特智慧遙控器現身 可控制快門和閃光燈
- 揭開迷霧,尋找真相《迷霧之夏》PC版現已在Steam平臺發售!線上活動盤點