《斐波那契數(shù)列》實踐報告_第1頁
《斐波那契數(shù)列》實踐報告_第2頁
《斐波那契數(shù)列》實踐報告_第3頁
《斐波那契數(shù)列》實踐報告_第4頁
《斐波那契數(shù)列》實踐報告_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

成果形式:《斐波那契數(shù)列》實踐報告成果名稱:《斐波那契數(shù)列》實踐目的運用Pycharm程序來實現(xiàn)斐波那契數(shù)列實踐內(nèi)容1.實驗目標:實現(xiàn)斐波那契數(shù)列的應用2.實驗程序:Pycharm2019.1.3實踐過程打開IDE,配置解釋器(如已完成解釋器配置,可跳過解釋器配置步驟)1.

點擊桌面pycharm圖標打開IDE2.在打開的窗口中選擇Configure選項,接著在彈出的下拉菜單中選擇Settings打開首選項菜單

3.首選項菜單中選擇左側的ProjectInterpreter,在右側下拉菜單中選擇3.6.5版本解釋器,并依次點擊Apply與OK確認設置。

2)

新建Project(如已完成工程創(chuàng)建,可跳過此步驟)1.

點擊CreateNewProject新建工程2.

在Location文本框中補充輸入project,表示將/root/PycharmProjects/project作為新工程目錄,并點擊create完成創(chuàng)建

3)

新建python源代碼文件1.

鼠標右鍵單擊project工程,在菜單中選擇New->PythonFile創(chuàng)建.py文件2.在彈出窗口的Name文本框中輸入.py文件的文件名,本次實驗推薦文件名為“斐波那契數(shù)列“。接著點擊OK按鈕完成python源文件的創(chuàng)建。創(chuàng)建成功后,會默認在右側編輯區(qū)域打開該文件。4)

編寫實驗代碼1.

輸入如下代碼,定義一個函數(shù),該函數(shù)接收一個參數(shù)n,用于計算斐波那契數(shù)列項。當n小于等于0時,返回的數(shù)列項值為0[Code001]:defFibonacci_Recursion_tool(n):ifn<=0:return02.在該函數(shù)中輸入如下代碼,實現(xiàn)當n等于1時,返回的數(shù)列項值為1[Code002]:elifn==1:return13.在該函數(shù)中輸入如下代碼,實現(xiàn)當n非0非1時,返回的數(shù)列項值為f(n-1)+f(n-2)[Code003]:else:returnFibonacci_Recursion_tool(n-1)+Fibonacci_Recursion_tool(n-2)4.輸入如下代碼,定義一個函數(shù),該函數(shù)接收一個參數(shù)n,用于計算1-n之間的斐波那契數(shù)列。該函數(shù)的實現(xiàn)為,遍歷1-n之間的數(shù),并依次調用Fibonacci_Recursion_tool函數(shù)計算數(shù)列項,并將計算的結果保存至一個列表中[Code004]:defFibonacci_Recursion(n):result_list=[]foriinrange(1,n+1):result_list.append(Fibonacci_Recursion_tool(i))returnresult_list5.輸入如下代碼,編寫程序入口,調用Fibonacci_Recursion函數(shù),并傳入100作為實參,計算10個斐波那契數(shù)列項,并打印[Code005]:if__name__=='__main__':

result=Fibonacci_Recursion(10)

print(result)6.完整代碼如下圖所示5)執(zhí)行程序1.鼠標右鍵單擊右側編輯窗口,在菜單中選擇Run‘python主程序所在文件名’一項執(zhí)行編寫好的Python程序,本次實驗文件名為”斐波那契數(shù)列”2.在IDE下方控制臺查看輸出結果實踐體會這個暑假,學校組織我們開展了python語言的學習,并展開了一系列的實踐演練,其中斐波那契數(shù)列則為我們將要用來最終處理和使用的例子。斐波那契數(shù)列又稱黃金分割數(shù)列,是由13世紀的意大利數(shù)學家列昂納多·斐波那契提出的。在1202年他所撰寫的《珠算原理》中以兔子繁殖問題為例而引人,故稱“兔子數(shù)列”,這個名字非常的讓大家印象深刻,在接下來的研究中更加的能激起我們的好奇心,對這個課題探討得更加深刻并且還能促進我們學習python語言。正如大家已經(jīng)知道的,斐波那契數(shù)列頻頻出現(xiàn)在各種各項的地方,例如方外的樹葉,大家都愛吃的鳳梨,還有松樹上的松果等的排列順序以及各種花瓣的數(shù)量,比如向日葵花瓣,玫瑰花瓣,都可以找得到它的蹤影,它更是出現(xiàn)在平時身邊的小動物身上,池塘邊的蜻蜓翅膀,蜜蜂的蜂巢等,斐波那契更是我們數(shù)學專業(yè)所以只致力研究的,我們都學過的黃金矩陣,和美術所遵循的黃金分割比例、十二平均律和等角落線,斐波那契數(shù)列還有很多特別的性質,比如說它公式在第二項之后,它的每個項數(shù)的平方,比如偶數(shù)項都比前兩項的積少1,并且它的每一個奇數(shù)項比它的前一項的乘積多1。等等好多的地方都需要我們?nèi)グl(fā)現(xiàn),而就在這次,我們則要在計算機這一行里更加深刻地去感受它的魅力,要將其用python的語言來理解并貫徹到我們每一個人的心里。在實踐的過程中,我了解到了斐波那契數(shù)列的三種基本解法:一、經(jīng)典求法觀察數(shù)列可得,除了第一項和第二項,所有的數(shù)列的值都是前一項和前一項的前一項的加和,轉換成函數(shù)也就是f(n)=f(n-1)+f(n-2)二、順序求法因為斐波那契數(shù)列可以從左到右順序的求出每一項的值,因此只需要順序計算到n項即可,時間復雜度為O(n)的,我們可以把它看成在單鏈表的最后插入一個右最后一個和倒數(shù)第二個指針指向的值來決定的。三、狀態(tài)矩陣相乘求法這是一個時間復雜度為O(logn)的算法。因為斐波那契數(shù)列在n大于等于三的時候嚴格遵守遞推數(shù)列f(n)=f(n-1)+f(n-2),而對于一個二階的遞推數(shù)列來說,我們可以用矩陣乘法來表示,且狀態(tài)矩陣是2階的方陣。在這短短的兩周的時間,我們從懵懵懂懂到基本掌握到了一些基礎性的語法再到更深一步的了解到了python的魅力,在徐老師的帶領之下,通過一個個小小的例子來讓我進一步接受理解,徐老師不僅人和善可親而且專業(yè)知識和技術都非常的強,他每天上課都會將前一天的習題,講解的非常詳細,操作上也非常熟練,我們學習python語言時就會覺得不是那么讓人接受不了,我們的李威老師則在這一點上做的非常好。我們逐步了解了python語言,學會了用簡單的python語言來達成自己想做的項目,并且發(fā)現(xiàn)了自己的不足之處,對自身價值能夠進行客觀評價和理性分析。經(jīng)過這次徐老師帶領我們學習python語言之后,我們對除C語言、C++語言之外的其他語言也獲得了更深層次的學習和理解。

在這次上課之前,我還在為自己的各種不努力超借口,正是因為這種思想的存在,才導致我裹足不前,思想懶惰,缺乏時間鍛煉,徐老師帶領我們,通過講授以及團隊合作的方式讓我明白了還有這么多的新知識等著我去學習,不能這樣了,要加油和努力,在之后的日子我也用這個來嚴格的規(guī)范自己,也明白自己之前沒有想過的道理。在看似簡短得兩周之后,我們學習了很多東西,了解并運用C語言,并學會了一些簡單的語言供我們使用于日常生活中的簡單運算中,我們在學習中進一步了解到了操作和理解的重要性,在編寫程序中遇到很多自己不理解的地方都是與老師或同學互相商討協(xié)助完成的,通過這個過程來把自己的知識轉化成經(jīng)驗,學無止境,還有許多東西需要我們?nèi)W習、付出,并從其中獲得自己所需要的東西。老師每節(jié)課都會將這節(jié)課的知識點并借留下課后練習題,在老師及我們的不懈努力下我們把python理解并應用的很好,并且實踐和操作能力上也得到了提高,真正地做到了學以致用,對我來說真的是進步非常大了。在寫作業(yè)時我和同學們互相商討,這一點讓我認識到了了什么叫團隊,并且和團隊分工合作時,我還學會了如何更好地與別人溝通,如何更好地去陳述自己的觀點,并且和同學一起交流彼此的觀點。這讓我親身感受到理論與實際的相結合,從而知道了自己之后應該如何運用這種情況來對付其他的學習。這次python學習使我受益匪淺,在短短的兩周中相信這些寶貴的經(jīng)驗對我之后的學習生涯以及自己的就業(yè)生涯影響都十分深遠。這次python學習我真的理解到了這個理論與實踐相結合這一理論,而這次學習則為其中的一個關鍵,我明白自己的不足之處以及自己當前必須作出什么來使自己更加清楚自己的能力,并且加強自己的實踐能力。我明白了走出課堂、投身實踐的必要和重要性,平時我們只能在書本上看到這些知識,但這次這個契機為我指明了方向、提供相應的方法,針對實際操作中遇到的一些特殊的問題,我們不能局限于課本上短短的知識,經(jīng)過這以每日的實踐,來達到我們的目的,平時,我們只能在課堂上與老師一起談天說地,只是局限于課本的范圍之內(nèi),并為與其聯(lián)想聯(lián)系結合起來,才導致我們對出了課本知識之外的其他知識的不以為然,從而使我們在面對其他問題的時候,無比的慌亂而針對實際操作中遇到的一些特殊的問題,我們不能拘泥于課本,不可純粹地“以本為本”。在此次實訓中,我還學會了下面幾點學習的心態(tài):第一點則是要繼續(xù)學習,不斷提升理論涵養(yǎng),在現(xiàn)階段,學習并不斷地汲取新信息,從而使自己的能力得到更進一步的提升。第二點則是要努力實踐,自覺進行主角轉化。只有將理論付諸于實踐才能實現(xiàn)理論自身的價值,也只有將理論付諸于實踐才能得以檢驗。同樣,一個人的價值也是透過實踐活動來實現(xiàn)的,也只有透過實踐才能是自己的品質不斷的提升,使自己得到鍛煉。能夠說這次python的學習不僅僅使我學到了知識,豐富了經(jīng)驗也是我對未來自己的規(guī)劃更加的清晰和明了。在未來的工作中我會把學到的理論知識和實踐經(jīng)驗不斷的應用到學習當中,為實現(xiàn)理想而努力。我要謝謝這次學院組織的python實訓,使我們學到了很多知識,也領悟了很多道理。這次學習python語言,使我收獲了很多,一方面學習到了許多以前沒學過的專業(yè)知識與知識的應用,另一方面還提高了自我動手做項目的潛力以及跟同學和老師之間的交流和活動能力。這次學習真的死是對我潛力的進一步鍛煉,也是一種考驗。從中獲得的諸多收獲,也是很可貴的,是十分有好處的。這次使我正式接觸到了python,在接觸python的過程中,python給我的第一感覺就是簡潔并且實用,在同樣的代碼程序下對比C語言與C++,python要簡練很多,作為一種解釋型語言,Python似乎更強調代碼的可讀性和簡潔的語法。采用了空格縮進標識代碼塊,沒有了其他語言中的大括號,沒了c語言中那讓人煩惱的理解以及安排區(qū)域問題,也沒有了末尾的分號,代碼的排列非常的簡單,沒有大括號套大括號,可讀性非常的強,理解起程序來相當?shù)姆奖?,并且也幫助我學習了一些我不太懂之前沒有理解的問題。在編寫程序解決問題的過程中,我也接觸到了一些Python的一些自帶的模版。我發(fā)現(xiàn)python基本上利用自帶的模版庫就能解決各種各樣的問題,使用效率更加的上升了一個高度。相對于C語言等其他語言來說,Python可以讓我們用更少的代碼,實現(xiàn)更多的idea。比起困難的語言學比如C語言來說,就算勁頭再足,也難免會枯燥和乏味,這就和彰顯出Python這門語言很簡潔和易于學習,對于我這種基礎比較的學生,也能夠立刻上手,快速的運用和編輯這個語言,并馬上能完成一些簡單的代碼,也不會因為都是英文看不懂或語法復雜失去學習的興趣,李威老師給我們介紹下來的猜詞軟件也讓我對這種語言有一種特別的興趣和好奇感。之后我們還簡單的學習了爬蟲方面的知識,加深了我對于網(wǎng)絡爬蟲的了解,在這之前我只是聽過有這樣的一個“爬蟲”這個詞語的,課程結束后也讓我更加了解了它現(xiàn)在是網(wǎng)絡搜索中一個必不可少的程序。但是爬蟲對于Python來說,實在是一個小到不能再小的功能體現(xiàn),爬蟲中,真正有難度的是對數(shù)據(jù)的分析,是對所需要規(guī)則的正則、處理。因此以后還有更多的知識要去學習,攻克更多的難點。最后,我想我們需要在其他地方更多的去接受一些在學校學習不到的知識,才能學到一些真正實用的技巧,并且使之更加的高效。但與此同時,在學校學習的基礎課程會培養(yǎng)我們的邏輯思維和一種思考方式,只有在學好了基礎的編程語言和軟件的基礎上,才能掌握更高級的編程語言并在接下來的學習和就職生涯中得到最大的發(fā)展和利用,并且從斐波那契數(shù)列體味數(shù)學文化的奧秘并且在接下來的生活和學習中,學會妥善處理自己的心態(tài),1.要善于在生活中發(fā)現(xiàn)問題2.解決問題,首先要明確概念,提煉其精髓3.采取合適的方法是關鍵4.善于總結,并從中得出一般規(guī)律在最后的最后,真的要謝謝這次機會,是我的思維更加的成熟和理智,為我之后的學習生涯奠定了基礎,也讓我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論