読者です 読者をやめる 読者になる 読者になる

Remrinのpython攻略日記

python3に入門しました。python3についてあれこれとサンプルコードとか。

アルゴリズム

素数

素数について。 素数生成のジェネレータ def gen2(start=2, stop=1000000): pr = max(1, start - 1) while True: while pr < stop: pr += 1 if all(pr%x != 0 for x in range(2, int(pr**0.5) + 1)): break yield pr g = gen2() for i in range(10): print(n…

フィボナッチ数列

フィボナッチ数列について。 def fib(n): a, b = 0, 1 for i in range(n): a, b = b, a + b return b print([fib(i) for i in range(10)]) # [1, 1, 2, 3, 5, 8, 13, 21, 34, 55] メモ化した場合 fib_memo = {} def fib(n): if n < 3: return 1 if n not in …

最小二乗法

最小二乗法について。 (2, 3), (4, 7), (9, 11)の3点をデータとして、最小二乗法を1次式で行う場合。 とすると、 これの最小値を求めることになり、偏微分をして となるベクトルが係数ベクトルとなる。 # coding: utf-8 import numpy as np import matplotli…

バーンスレイのシダ

○バーンスレイのシダ 4種類の変換をそれぞれ、85%、7%、7%、1%の確率で選んでいきます。 # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt def transform1(p): x, y = p[0], p[1] x1 = 0.85*x + 0.04*y y1 = -0.04*x + 0.85…

pythonで円周率を求める

pythonで円周率を求めるアルゴリズム ○ライプニッツの方法 収束が遅い。 100万回計算して、6桁くらい。 pi4 = 0 for i in range(1000000): pi4 += (1 / (i * 4 + 1) - 1 / (i * 4 + 3)) print(pi4 * 4) # 3.141592153589902 ○区分求積を使う。 収束が速い。 …

pythonでクイックソートのアルゴリズム

pythonでクイックソートのアルゴリズムを考えてみた。

三角形の内接円、外接円、面積、角度

pythonで外接円の中心と半径を求めるプログラムを作ってみた