Pythonのフラクタルツリー
フラクタルパターンは自然界で私たちの周りにあります。シダの葉から取り出された小さな枝のように、葉自体に似ています。または、小石はしばしば山の形に似ています!したがって、大きなパターンを生成するために小さなパターンを繰り返すというこのアイデアは、フラクタルツリーとして知られています。 Pythonプログラミングでは、利用可能なさまざまなモジュールを使用してフラクタルツリーを生成することもできます。
pygameモジュールの使用
このモジュールは、フラクタルツリーを生成するために必要な機能を提供します。ここでは、最初に画面レイアウトサイズを定義し、次にパターンが繰り返される深さを定義します。ここでは、同じパターンを特定の深さまで何度も繰り返すため、再帰が大きな役割を果たします。
例
import pygame, math pygame.init() screen = pygame.display.set_mode((750, 650)) pygame.display.set_caption("Fractal Tree") display = pygame.display.get_surface() def drawTree(a, b, pos, deepness): if deepness: c = a + int(math.cos(math.radians(pos)) * deepness * 10.0) d = b + int(math.sin(math.radians(pos)) * deepness * 10.0) pygame.draw.line(display, (127,255,0), (a, b), (c, d), 1) drawTree(c, d, pos - 25, deepness - 1) drawTree(c, d, pos + 25, deepness- 1) def process(event): if event.type == pygame.QUIT: exit(0) drawTree(370, 650, -90, 10) pygame.display.flip() while True: process(pygame.event.wait())
出力
上記のコードを実行すると、次の結果が得られます。
タートルの使用
タートルモジュールを使用すると、同様のアプローチに従うことができます。ここで、タートルプログラムは、描画の方向を変更するだけで、繰り返しパターンとして木の枝の描画を開始します。関数が繰り返される角度を定義してから、完全なツリーを取得します。
例
import turtle def tree(Length,n): if Length > 10: n.forward(Length) n.right(25) tree(Length-15,n) n.left(50) tree(Length-15,n) n.right(25) n.backward(Length) def function(): n = turtle.Turtle() data = turtle.Screen() n.left(90) n.up() n.backward(100) n.down() n.color("green") tree(85,n) data.exitonclick() function()
出力
上記のコードを実行すると、次の結果が得られます。
-
2つの二分木のリーフトラバーサルがPythonで同じかどうかを確認します
2分木があるとします。これら2本の木の葉の走査が同じかどうかを確認する必要があります。私たちが知っているように、葉の探索は左から右に横断する葉のシーケンスです。 したがって、入力が次のような場合 両方のツリーの左走査シーケンスが同じであるため、出力はTrueになります。つまり、[5、7、8]です。 これを解決するには、次の手順に従います- s1:=新しいリスト、s2:=別の新しいリスト r1をs1に挿入し、r2をs2に挿入します s1とs2が空ではない場合は、 s1が空の場合、またはs2が空の場合、 Falseを返す r1_node:=s1の最後のノードであり、s1
-
Pythonのissuperset()
この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',