這是一人遞歸調(diào)用,koch中,又調(diào)用了自已,結(jié)束條件是,n==0, 每次遞歸取1/3的size, 然后n-1 ,直到n==0結(jié)束。如果你不了解歸函數(shù)可以baidu一下。
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)十載經(jīng)驗(yàn)成就非凡,專業(yè)從事網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站,成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)頁制作,軟文推廣,廣告投放平臺(tái)等。十載來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:028-86922220,我們期待您的來電!
首先雪花算法就是生成一個(gè)64位的二進(jìn)制數(shù)據(jù),最終轉(zhuǎn)換成長度為19的十進(jìn)制正整數(shù)整型數(shù)據(jù)
解釋一下這64位分別代表什么意思,從左往右。
當(dāng)然這個(gè)算法的強(qiáng)大并不僅僅如此而已,這個(gè)算法的時(shí)間位、機(jī)器位、序列號(hào)位都是可以根據(jù)不同場景來調(diào)整的,那么他們碰撞的幾率也隨著調(diào)整發(fā)生改變。
接下來上干貨
總體來說算法并不難,思路清晰,其中的牽扯到的知識(shí)點(diǎn)就是各個(gè)數(shù)據(jù)間進(jìn)行位運(yùn)算,這塊知識(shí)薄弱的可以去補(bǔ)一補(bǔ)。
一篇文檔不僅get到了雪花算法的思想,還發(fā)現(xiàn)了就像當(dāng)初發(fā)現(xiàn)隨機(jī)函數(shù) Random 一樣,隨機(jī)只是在一定范圍內(nèi)隨機(jī),唯一只是在某一個(gè)時(shí)間段唯一。場景是度量算法的尺度,致敬 Twitter 。
import random
import turtle
def random_color():
rgbl=[255,0,0]
random.shuffle(rgbl)
return tuple(rgbl)
def koch(size,n):
if n==0:
? turtle.fd(size)
else:
? for angle in [0,60,-120,60]:
? ? ? cc = random_color()
? ? ? turtle.pencolor(cc[0], cc[1], cc[2])
? ? ? turtle.left(angle)
? ? ? koch(size/3,n-1)
def main():
turtle.colormode(255)
turtle.setup(600,600)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level=4? ?#4階科赫雪花,階數(shù)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
turtle.done()
main()
效果如圖:
新聞標(biāo)題:python雪花函數(shù) 雪花算法 php
轉(zhuǎn)載源于:http://muchs.cn/article42/doeeoec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、App設(shè)計(jì)、網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)