プサイ関数(ディガンマ関数)およびポリガンマ関数は、ガンマ関数の対数微分に関連する特殊関数です。 C言語でこれらを実装するには、数値解析手法を用いるのが一般的です。 ディガンマ関数は、オイラー・マクローリン展開や漸近展開を使って近似できます
続きを読む »フィボナッチ探索は、フィボナッチ数列を利用して効率的にソート済み配列内で要素を探索するアルゴリズムです。 二分探索に似ていますが、分割の比率が黄金比に近い点が特徴です。 実装の流れは、まず探索範囲のサイズに最も近いフィボナッチ数を見つけ、そ
続きを読む »フィボナッチ数列を求めるアルゴリズムは、再帰的または反復的に実装できます。 再帰的な方法では、フィボナッチ数列の定義に従い、関数が自身を呼び出して計算します。 基本的な再帰関数は、ベースケースとして\(n = 0\)と\(n = 1\)のと
続きを読む »ベルマンフォード法は、重み付き有向グラフにおける単一始点最短経路問題を解くアルゴリズムです。 負の重みを持つ辺が存在する場合でも正しく動作しますが、負の閉路がある場合は検出可能です。 C言語で実装する際は、まず辺のリストを用意し、各辺につい
続きを読む »C言語でベータ分布に従う乱数を生成するには、まずベータ分布の定義に基づいてガンマ分布を利用します。 ベータ分布のパラメータを \(\alpha\) と \(\beta\) とすると、以下の手順で乱数を生成できます。 ベータ分布とは ベータ分
続きを読む »ベータ関数は、2つの正の実数 \(x\) と \(y\) に対して定義される特殊関数で、次のように表されます: \[B(x, y) = \int_0^1 t^{x-1} (1-t)^{y-1} dt\] C言語でベータ関数を実装するには、ガ
続きを読む »フリードマン検定は、複数の関連するサンプル間の差を評価するためのノンパラメトリック検定です。 C言語でフリードマン検定を実装するには、以下の手順を踏みます。 まず、データを行列形式で入力し、各行(被験者)ごとに順位付けを行います。 次に、各
続きを読む »メディアン検定(中央値検定)は、データの中央値が特定の値と異なるかどうかを検定する方法です。 C言語でメディアン検定を行うには、まずデータをソートして中央値を求めます。 次に、中央値が仮説値と異なるかどうかを評価します。 具体的には、データ
続きを読む »マンホイットニーのU検定は、2つの独立したサンプルの中央値の差を比較する非パラメトリック検定です。 C言語で実装するには、まず2つのサンプルを入力し、それらを結合して順位付けを行います。 次に、各サンプルの順位の合計を計算し、U統計量を求め
続きを読む »遺伝的アルゴリズム(GA)は、進化の過程を模倣して最適解を探索する手法です。 ナップサック問題では、重さの制約内で価値を最大化するアイテムの組み合わせを見つけます。 GAを用いる場合、まず個体(解候補)をバイナリ列で表現し、各ビットがアイテ
続きを読む »C言語で指数平滑化による予測プログラムを作成するには、まず過去のデータと平滑化係数(\(\alpha\))を用意します。 指数平滑化の基本式は、次のように表されます: \[ S_t = \alpha \cdot X_t + (1 ̵
続きを読む »重回帰分析は、複数の独立変数を用いて従属変数を予測する手法です。 C言語で重回帰分析を実装するには、まずデータを行列形式で扱い、最小二乗法を用いて回帰係数を求めます。 具体的には、行列 \(X\)(独立変数)とベクトル \(y\)(従属変数
続きを読む »C言語で深さ優先探索(DFS)を実装するには、再帰またはスタックを使用します。 再帰的な方法では、まず訪問するノードを記録し、次にそのノードに隣接する未訪問のノードに対して再帰的にDFSを呼び出します。 スタックを使う場合は、初期ノードをス
続きを読む »C言語では、双曲線関数の計算に標準ライブラリmath.hを使用します。 具体的には、sinhは双曲線正弦、coshは双曲線余弦、tanhは双曲線正接を計算します。 これらの関数は、それぞれ次のように定義されます: \[\sinh(x) =
続きを読む »C言語で組合せの数 \(nCr\) を求めるには、以下の手順でプログラムを作成します。 まず、組合せの数は次の式で表されます: \[nCr = \frac{n!}{r!(n-r)!}\] この式に基づき、階乗を計算する関数を作成し、その結果
続きを読む »C言語で素因数分解プログラムを作成するには、まず入力された整数を2から順に割り、割り切れる数を素因数として記録します。 割り切れたら、その数で割り続け、割り切れなくなったら次の数に進みます。 具体的には、入力された数を2で割り続け、次に3、
続きを読む »C言語で多項式の計算を行う方法にはいくつかのアプローチがあります。 直接計算法は、与えられた多項式の各項を順に計算し、結果を合計する方法です。 分割統治法は、再帰的に多項式を分割し、部分的な計算結果を組み合わせることで効率を上げます。 高速
続きを読む »C言語で身長と体重の相関係数を計算するには、まず相関係数の定義に基づいて計算を行います。 相関係数は、2つの変数の共分散をそれぞれの標準偏差で割った値です。 具体的には、以下の手順で計算します。 相関係数とは何か 相関係数は、2つの変数間の
続きを読む »C言語で多倍長整数の演算を実装するには、標準の整数型では扱えない大きな数値を配列や構造体で管理します。 各要素に桁を格納し、桁ごとの演算を行います。 例えば、10進数であれば1桁ずつ配列に格納し、繰り上がりや繰り下がりを手動で処理します。
続きを読む »