アルゴリズム

[Python] ベルヌーイ分布を実装する方法

Pythonでベルヌーイ分布を実装するには、scipy.statsモジュールのbernoulliクラスを使用するのが一般的です。 bernoulliクラスは、成功確率\(p\)を指定してベルヌーイ分布に従う乱数を生成したり、確率質量関数(P

続きを読む »
アルゴリズム

[Python] エイトケンのΔ2乗加速法を実装する方法

エイトケンのΔ²加速法は、数列の収束を加速するための手法です。 Pythonで実装する際は、数列の3つの連続する項 \(x_n\), \(x_{n+1}\), \(x_{n+2}\) を用いて新しい項 \(x’_n\) を計算し

続きを読む »
アルゴリズム

[Python] アッカーマン関数のプログラムを作成する方法

アッカーマン関数は、再帰的に定義される関数で、計算理論や計算量理論でよく使われます。 Pythonでアッカーマン関数を実装するには、再帰を用います。 関数は2つの引数 \(m\) と \(n\) を取り、次のように定義されます: \[A(m

続きを読む »
アルゴリズム

[Python] matplotlibでC曲線を描画する方法

C曲線はフラクタルの一種で、再帰的に直角に折れ曲がる線を描画します。 Pythonのmatplotlibを使用してC曲線を描画するには、再帰関数を定義し、各再帰ステップで線分を回転・縮小して描画します。 基本的な手順として、初期の直線を描き

続きを読む »
アルゴリズム

[Python] CRC(巡回冗長検査)のアルゴリズムを実装する方法

CRC(巡回冗長検査)は、データの誤り検出に使用されるアルゴリズムです。 PythonでCRCを実装するには、まず生成多項式(例:CRC-32なら0x04C11DB7)を定義し、データをビット列として扱います。 次に、データに生成多項式を適

続きを読む »
アルゴリズム

[Python] コラッツ予想(コラッツの問題)のプログラムを作成する方法

コラッツ予想は、任意の正の整数 \(n\) に対して次の操作を繰り返すと最終的に1に到達するという未解決の問題です。 操作は、\(n\) が偶数なら \(n/2\)、奇数なら \(3n+1\) に置き換えるというものです。 Pythonでコ

続きを読む »
アルゴリズム

[Python] コーシー分布の計算を行う方法

Pythonでコーシー分布の計算を行うには、scipy.statsモジュールを使用します。 scipy.stats.cauchyはコーシー分布に関連する確率密度関数(PDF)、累積分布関数(CDF)、乱数生成などを提供します。 例えば、ca

続きを読む »
アルゴリズム

[Python] ボイヤームーア法で文字列検索する方法

ボイヤー・ムーア法は、文字列検索アルゴリズムの一つで、検索対象のテキスト内でパターンを効率的に見つけるために使用されます。 特徴は、パターンの末尾から比較を行い、部分一致が見つかった場合に大きくスキップできる点です。 Pythonでボイヤー

続きを読む »
アルゴリズム

[Python] ガウス・サイデル法で連立方程式を解く方法

ガウス・サイデル法は、反復法を用いて連立一次方程式を解く手法です。 各変数の値を順次更新し、前回の計算結果を次の計算に反映させることで、解に収束させます。 Pythonで実装する際は、まず係数行列と定数ベクトルを定義し、初期値を設定します。

続きを読む »
アルゴリズム

[Python] ガウス・ジョルダン法を実装する方法

ガウス・ジョルダン法は、連立一次方程式を解くためのアルゴリズムで、行列を階段行列に変換し、最終的に単位行列にすることで解を求めます。 Pythonで実装する際は、NumPyなどのライブラリを使用して行列操作を行うと便利です。 基本的な手順は

続きを読む »
アルゴリズム

[Python] F分布を計算してグラフを作成する方法

PythonでF分布を計算し、グラフを作成するには、scipyライブラリのscipy.stats.fを使用します。 まず、f.pdf()関数で確率密度関数を計算し、matplotlibライブラリのpyplotを使ってグラフを描画します。 F

続きを読む »
アルゴリズム

[Python] d*lite(D-star Lite)グラフ探索アルゴリズムで経路探索を行う方法

D* Liteは、動的環境での経路探索に適したアルゴリズムです。 A*アルゴリズムに似ていますが、環境が変化した際に効率的に再計算を行う点が特徴です。 PythonでD* Liteを実装するには、まずグリッドやグラフを定義し、各ノードのコス

続きを読む »
アルゴリズム

[Python] グレイコード(グレイ符号)を生成する方法

グレイコード(グレイ符号)は、隣接する値が1ビットだけ異なるように並べられた2進数の列です。 Pythonでグレイコードを生成するには、整数 \(n\) に対して \(n \oplus (n >> 1)\) を計算する方法が一般

続きを読む »
アルゴリズム

[Python] ハウスホルダー変換によるQR分解を実装する方法

ハウスホルダー変換を用いたQR分解は、行列を直交行列 \(Q\) と上三角行列 \(R\) に分解する手法です。 Pythonでは、NumPyを使用して実装できます。 基本的な流れは、まずハウスホルダー行列を作成し、行列 \(A\) に対し

続きを読む »
アルゴリズム

[Python] ヒルベルト曲線をmatplotlibで描く方法

ヒルベルト曲線は、空間を埋めるフラクタル曲線の一種で、再帰的に定義されます。 Pythonでヒルベルト曲線を描くには、再帰的なアルゴリズムを使用して座標を生成し、それをmatplotlibでプロットします。 まず、ヒルベルト曲線の各レベルで

続きを読む »
アルゴリズム

[Python] クヌース・モリス・ブラット法を実装する方法

クヌース・モリス・ブラット(KMP)法は、文字列検索アルゴリズムの一つで、部分一致の情報を利用して効率的に検索を行います。 KMP法のPython実装は、まず「部分一致テーブル(LPS: Longest Prefix which is al

続きを読む »
アルゴリズム

[Python] k-meansクラスタリングを実装する方法

k-meansクラスタリングは、データをk個のクラスタに分割するアルゴリズムです。 Pythonでは、主にscikit-learnライブラリを使用して簡単に実装できます。 まず、KMeansクラスをインポートし、データをフィットさせます。

続きを読む »
アルゴリズム

[Python] フラクタル図形のジュリア集合を描画する方法

ジュリア集合は、複素平面上の各点に対して特定の複素数を使った反復操作を行い、その結果に基づいて点を色分けすることで描画されます。 Pythonでは、matplotlibやnumpyを使用してジュリア集合を描画できます。 基本的な手順は、複素

続きを読む »
アルゴリズム

[Python] ヤコビ法で連立方程式を解く方法

ヤコビ法は、反復法の一種で、連立一次方程式を数値的に解くための手法です。 各変数の値を他の変数の値を用いて更新し、収束するまで繰り返します。 具体的には、行列 \(A\) とベクトル \(b\) からなる方程式 \(A \mathbf{x}

続きを読む »
Back to top button