C で確率関数を使用するにはどうすればよいですか?
確率関数は、データ サイエンスと統計において非常に重要な役割を果たします。 C プログラミング言語では、標準ライブラリの関数を使用してさまざまな確率計算を実装できます。この記事では、C で確率関数を使用して一般的な確率計算を実行する方法を紹介します。
C 標準ライブラリは、「cmath」という名前のヘッダー ファイルを提供します。このファイルには、確率関数などの数学的計算に関連する多くの関数が含まれています。確率関数を使用する前に、まずいくつかの概念と用語を理解する必要があります。
次に、いくつかの一般的な確率関数と使用例を示します。
正規分布関数:
正規分布は、一般的な確率分布であり、次のように表されます。 「normal_distribution」クラス。
#include <iostream> #include <random> #include <cmath> int main() { std::random_device rd; std::mt19937 gen(rd()); std::normal_distribution<double> dist(0.0, 1.0); double x = 2.0; double p = std::exp(-std::pow(x, 2) / 2) / std::sqrt(2 * M_PI); double cdf = std::erfc(-x / std::sqrt(2)) / 2; std::cout << "PDF: " << p << std::endl; std::cout << "CDF: " << cdf << std::endl; return 0; }
この例では、まず、「normal_distribution」クラスを通じて、平均が 0、標準偏差が 1 の正規分布を定義します。次に、x=2.0 における確率密度と累積分布を計算しました。
二項分布関数:
二項分布は、一定回数の反復試行における成功の確率を記述するために使用されます。 「binomial_distribution」クラスを使用して表現されます。
#include <iostream> #include <random> int main() { std::random_device rd; std::mt19937 gen(rd()); std::binomial_distribution<int> dist(10, 0.5); int k = 5; double p = std::tgamma(11) / (std::tgamma(6) * std::tgamma(5)) * std::pow(0.5, 5) * std::pow(0.5, 5); double cdf = 0; for (int i = 0; i <= k; i++) { cdf += std::tgamma(11) / (std::tgamma(i + 1) * std::tgamma(11 - i)) * std::pow(0.5, i) * std::pow(0.5, 11 - i); } std::cout << "PDF: " << p << std::endl; std::cout << "CDF: " << cdf << std::endl; return 0; }
この例では、まず、「binomial_distribution」クラスを使用して、成功確率 0.5 で 10 回繰り返される二項分布を定義します。次に、k = 5 回の成功の確率密度と累積分布を計算しました。
上記の例を通じて、C の確率関数を使用して一般的な確率計算を実行する方法を確認できます。実際のアプリケーションでは、ポアソン分布や指数分布など、他のタイプの確率分布関数も処理する必要がある場合があります。 C 標準ライブラリは、これらのディストリビューションを処理するための対応するクラスも提供します。実際には、特定のニーズに応じて、計算に適した分布関数を選択できます。
要約すると、C の確率関数は、標準ライブラリの数学関数を通じて豊富な関数を提供しており、さまざまな確率計算の実行に役立ちます。これらの機能を利用することで、一般的な確率密度計算や累積分布計算、乱数生成などが簡単に実現できます。これにより、科学計算やデータ分析の分野で大きな利便性が得られます。
以上がC++ で確率関数を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。