日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

1 說明

====

1.1 斐波那契數列的介紹。

1.2 斐波那契數列是上帝的指紋,大自然中隨處可見,目前廣泛應用到黃金分割線的布局美和股市等預測等等。

1.3 斐波那契數列的Python/ target=_blank class=infotextkey>Python的matplotlib和turtle的可視化。

1.4 本文為整理后的資料,小白易懂,適合收藏。

斐波那契數列:python實現和可視化

斐波那契 - 意大利數學家-1175年-1250年;圖片來自網絡,如有侵權請聯系,定刪

2 斐波那契數列

===========

2.1 斐波那契數列(Fibonacci sequence),又稱黃金分割數列。

2.2 因他以兔子繁殖為例子而引入,故又稱為“兔子數列”。

2.3 數列為:1、1、2、3、5、 8、13、21、34、55、89、144......

2.4 數列中的數為斐波那契數。

2.5 斐波那契數列是上帝的指紋,是一切自然紋理的規律線,文末有圖。

3 先看看python的可視化效果圖

=======================

3.1 圖1

斐波那契數列:python實現和可視化

500以內的斐波那契數

3.2 圖2:

斐波那契數列:python實現和可視化

3.3 圖3

斐波那契數列:python實現和可視化
斐波那契數列:python實現和可視化

3.4 圖4

斐波那契數列:python實現和可視化
斐波那契數列:python實現和可視化

3.5 圖5

斐波那契數列:python實現和可視化

4 圖片的代碼

==========

4.1 圖1的代碼:

import matplotlib.pyplot as plt

#定一個空列表,存放斐波那契數列的數

#作為可視化y坐標軸值

y_data=[]

#數列產生

def fib(n):

a=0

b=1

while a<=n:

#將產生的數列的數添加到列表中

y_data.Append(a)

a,b=b,a+b

#自定義輸入自然整數范圍

n=int(input('請輸入非0任意整數:,推薦500:'))

#調出函數產生數列

fib(n)

#定義x坐標軸數列個數序號

x_data=[i for i in range(len(y_data))]

#標題名

plt.title('該數列的個數:'+str(len(y_data)))

#作圖

plt.plot(x_data,y_data,'r',marker='o')

#數值標注

for xy in zip(x_data, y_data):

plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points')

#圖片展示

plt.show()

4.2 圖2代碼

#參考文章:https://blog.csdn.NET/cd_don/article/details/87212314

#導出模塊

import numpy as np

import matplotlib.pyplot as plt

#定義數列產生的函數

def fibo(n):

if n == 0:

fibo_list = np.array([0])

#修改源代碼bug

elif n == 1:

fibo_list = np.array([0,1])

else:

f_0, f_1 = 0, 1

fibo_list = np.array([f_0,f_1])

for i in np.arange(n-2):

fibo_num = f_0 + f_1

fibo_list = np.append(fibo_list,fibo_num)

f_0, f_1 = f_1, fibo_num

return fibo_list

#定義劃線函數,由列表找到xy坐標

def find_o_xy(f_list):

#起始圓心坐標

x_n, y_n = 0, 0

o_x_array, o_y_array = np.array([x_n]), np.array([y_n])

for n in np.arange(1,len(f_list)):

#需要注意pyhton中計數是從0開始

#第一項作為起始點已經給出

y_n=y_n+np.mod(n+1,2)*f_list[n]*(-1)**(1+(np.mod(n+1,2)+n+1)/2)

x_n=x_n+np.mod(n,2)*f_list[n]*(-1)**(1+(np.mod(n+1,2)+n+1)/2)

#橫縱坐標(x,y)

o_x_array = np.append(o_x_array, x_n)

o_y_array = np.append(o_y_array, y_n)

return o_x_array, o_y_array

#畫圓弧設置

#以下繪圖以n=7為例

count = 7

f_list = fibo(count)

x0_array,y0_array = find_o_xy(f_list)

#各個正方形對應的邊長,如例圖半徑從1,2...開始

f_list_r = fibo(count+2)[2::]

#畫出各個正方形內的1/4圓

start_angle, end_angle = np.pi, 1.5*np.pi

for n in np.arange(len(f_list)):

t=np.arange(start_angle,end_angle,0.001)

circle_x = (f_list_r[n])*(np.sin(t))+x0_array[n]

circle_y = (f_list_r[n])*(np.cos(t))+y0_array[n]

start_angle += 0.5*np.pi

end_angle += 0.5*np.pi

#畫圓弧形

plt.plot(circle_x,circle_y,color='r')

#標題

plt.title('斐波那契數列螺旋線')

#圖片展示

plt.show()

4.3 圖3代碼

#導入模塊

from turtle import *

#輸入自定義數列的個數

amount=int(input("請輸入斐波那契數列的而個數,推薦15:"))

#數列產生

a1=0

a2=1

tem_he=0

shulie=[]

for i in range(1,amount):

#終端輸出數列的數值

print(a1,end=',')

tem_he=a1+a2

a1=a2

a2=tem_he

#數列添加數值

shulie.append(tem_he)

#turtle畫圖

for i in range(1,amount-1):

for n in range(4):

forward(shulie[i])

left(90)

#畫圓

circle(shulie[i],90)

#輸出數列數值

write(shulie[i],font=("微軟雅黑",i*2))

 

mainloop()

4.4 圖4代碼

# encoding:utf-8

#參考文章

#https://blog.csdn.net/jiyeguhong/article/details/108020193?utm_medium=distribute.pc_relevant.none-task-blog-utm_term-2&spm=1001.2101.3001.4242

import turtle

from random import random

def draw_square(r):

t.fillcolor(random(), random(), random())

t.begin_fill()

for _ in range(4):

t.fd(r)

t.left(90)

# 填充關鍵點,正方形填充一半就結束,然后立即開始圓形填充

if _ == 1:

t.end_fill()

t.fillcolor(random(), random(), random())

t.begin_fill()

t.circle(r, 90)

t.end_fill()

return

if __name__ == '__main__':

t = turtle.Turtle()

t.hideturtle()

t.up()

t.goto(-130, 50)

t.down()

t.pensize(3)

# 黃金比例

scale = 0.618

# 初始半徑

r = 50

for _ in range(5):

draw_square(r)

r /= scale

turtle.mainloop()

4.5 圖5

#參看文章:https://blog.csdn.net/cd_don/article/details/87212314

#導出模塊

import numpy as np

#其實就是matplotlib模塊

import pylab as plt

# 產生菲波那切數列

def fibo(n):

f_0 = 0

f_1 = 1

fibo_list = np.array([f_0,f_1])

for i in np.arange(n-2):

fibo_num = f_0 + f_1

fibo_list = np.append(fibo_list,fibo_num)

f_0, f_1 = f_1, fibo_num

 

return fibo_list

#找出各個圓心

def find_o_xy(f_list):

x_n, y_n = 0, 0 #起始圓心坐標

o_x_array, o_y_array = np.array([x_n]), np.array([y_n])

for n in np.arange(1,len(f_list)):

#需要注意pyhton中數組計數是從0開始

#第一項作為起始點已經給出

y_n=y_n+np.mod(n+1,2)*f_list[n]*(-1)**(1+(np.mod(n+1,2)+n+1)/2)

x_n=x_n+np.mod(n,2)*f_list[n]*(-1)**(1+(np.mod(n+1,2)+n+1)/2)

o_x_array = np.append(o_x_array, x_n)

o_y_array = np.append(o_y_array, y_n)

return o_x_array, o_y_array

count = 6 #為7是需要調整figsize=(10,10)大小

f_list = fibo(count)

x0_array,y0_array = find_o_xy(f_list)

#------------------------頭像4----------------------------

f_list_r = fibo(count+2)[2::]

start_angle, end_angle = np.pi, 1.5*np.pi

fig = plt.figure(num=1,facecolor='k',figsize=(10,10))

#增加坐標軸對象,顯示box

ax = fig.add_axes([0.0, 0.0, 1.0, 1.0], frameon=True,aspect=1)

x_min, x_max, y_min, y_max = 0, 0, 0, 0

for n in np.arange(len(f_list_r)):

#圓心坐標

x0 = x0_array[n]

y0 = y0_array[n]

#得到對角頂點坐標

x2 = x0+f_list_r[n]*(-1)**((np.mod(n+1,2)+n+1)/2)

if n == 0:

y2 = -1 #起始點特殊目前只想到這么整了

else:

y2 = y0+f_list_r[n]*(-1)**(1+(np.mod(n,2)+n)/2)

#畫出圓弧

t=np.arange(start_angle,end_angle,0.001)

circle_x = (f_list_r[n])*(np.sin(t))+x0_array[n]

circle_y = (f_list_r[n])*(np.cos(t))+y0_array[n]

start_angle += 0.5*np.pi

end_angle += 0.5*np.pi

#畫圖,在坐標軸上畫圖

ax.plot(np.append(x0_array[n],np.append(circle_x,x0_array[n])),

np.append(y0_array[n],np.append(circle_y,y0_array[n])),

color='k',linewidth=5)

ax.fill(np.append(circle_x,x0_array[n]),

np.append(circle_y,y0_array[n]),

facecolor='gold',alpha = 1)#f5bf03

#設置axes內的填充顏色

ax.patch.set_facecolor('k')

#調節坐標范圍

x_min,x_max=8.5,-11.5

y_min,y_max=10,-10

mul_times = 1.5

ax.set_xlim(x_min*mul_times, x_max*mul_times)

ax.set_ylim(y_min*mul_times, y_max*mul_times)

#不顯示坐標軸刻度以及刻度線

ax.tick_params(axis='both',labelsize=0,length=0)

#圖片展示

plt.show()

5 大自然

斐波那契數列:python實現和可視化

黃金分割數列:黃金分割線


斐波那契數列:python實現和可視化

按照布局的照片最美


斐波那契數列:python實現和可視化

分享到:
標簽:數列
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定