python演算法分析與設計實驗 科赫雪花實驗

2021-09-10 12:23:14 字數 1178 閱讀 6341

演算法分析與設計實驗:科赫雪花實驗

一、實驗目的

1、熟悉python程式設計環境,包括程式安裝

2、熟悉python基本語法

3、遞迴演算法程式分析與除錯

二、實驗工具

win10作業系統、python3.7編譯環境、idle編譯器

三、實驗內容

本次實驗是利用遞迴演算法,用python中的繪相簿turtle,實現畫出科赫雪花。雪花曲線的構造從乙個正三角形開始,把每條邊分成三等份,然後以各邊的中間長度為底邊,分別向外作正三角形,再把「底邊」線段抹掉,這樣就得到乙個六角形,它共有12條邊,再把每條邊分成三等份,以各中間部分的長度為底邊,向外作正三角形後,抹掉底邊線段,反覆進行這一過程,就會得到有個「雪花」樣子的科赫曲線。

四、實驗過程

本實驗採用遞迴演算法完成曲線繪製:如果n=0,直接畫出長度為l的直線。如果n=1(第一次迭代),畫出長度為l/3的線段;畫筆向左轉60度再畫長度為l/3長的線段;畫筆向右轉120度畫長度為l/3長的線段;畫筆再向左轉60度畫出長度為l/3的線段。如果n>1,第n次迭代相當於:第n-1次迭代;畫筆左轉60度;n-1次迭代;畫筆右轉120度;第n-1次迭代;畫筆左轉60度;第n-1次迭代。本次實驗設n=3,用for遍歷迴圈角度,在最外層的迴圈執行後,再呼叫下一階及相應的長度。程式**如下:

import turtle as t

def koch(size, order):

if order == 0:

t.forward(size)

else:

for angle in [0, 60, -120, 60]:

t.left(angle)

koch(size/3, order-1)

def main():

t.setup(800, 800)

t.penup()

t.goto(-120, 100)

t.pendown()

t.pensize(2)

t.pencolor('green')

koch(300, 3)

t.right(120)

koch(300, 3)

t.right(120)

koch(300, 3)

t.done()

t.hideturtle()

main()

五、實驗結果與分析

演算法設計與分析 實驗1

一 實驗目的和要求 理解分治法的演算法思想,閱讀實現書上已有的部分程式 並完善程式,加深對分治法的演算法原理及實現過程的理解。二 實驗環境 實驗裝置 code blocks13.12 三 實驗原理及內容 一 用分治法實現一組無序序列的兩路合併排序和快速排序。要求清楚合併排序及快速排 序的基本原理,程...

演算法設計與分析 實驗3

一 實驗目的和要求 學習程式設計實現深度優先搜尋狀態空間樹求解實際問題的方法,著重體會求解第乙個可行解和求解所有可行解之間的差別。加深理解回溯法通過搜尋狀態空間樹 同時用約束函式剪去不含答案狀態子樹的演算法思想,會用蒙特卡羅方法估計演算法實際生成的狀態空間樹的結點數。二 實驗環境 實驗裝置 vsia...

演算法分析與設計實驗十二

問題 給定無向連通圖g和m種顏色,用這些顏色給圖的頂點著色,每個頂點一種顏色。如果要求g的每條邊的兩個頂點著不同顏色。給出所有可能的著色方案 如果不存在,則回答 no 解析 四色猜想 四色問題是m圖著色問題的乙個特例,根據四色原理,證明平面或球面上的任何地圖的所有區域都至多可用四種 顏色來著色,並使...