PHP - 均勻分佈累積分佈函式 (CDF) stats_cdf_uniform() 函式



定義和用法

stats_cdf_uniform() 函式可以根據其他引數的值計算均勻分佈的任意一個引數。

語法

float stats_cdf_uniform( float $par1, float $par2, float $par3, int $which )

引數

序號 引數 描述
1

par1

第一個引數

2

par2

第二個引數

3

par3

第三個引數

4

which

確定要計算什麼的標誌

返回值

stats_cdf_uniform() 函式可以返回均勻分佈的累積分佈函式、其反函式或其引數之一。返回值和引數 (par1、par2 和 par3) 的型別由 which 決定。

返回值和引數

下表列出了按 which 劃分的返回值和引數。

  • CDF 表示累積分佈函式。

  • x 表示隨機變數的值。

  • a 表示均勻分佈的下界。

  • b 表示均勻分佈的上界。

which 返回值 par1 par2 par3
1 CDF x a b
2 x CDF a b
3 a x CDF b
4 b x CDF a

依賴項

此函式首次引入於統計擴充套件 (PHP 4.0.0 和 PEAR 1.4.0)。本教程使用了 stats-2.0.3 的最新版本 (PHP 7.0.0 或更高版本和 PEAR 1.4.0 或更高版本)。

示例

在以下示例中,當 which=1 時,計算 (X, A, B) 的 P。

  • P 是均勻分佈從 0 到 X 的積分。輸入範圍:[0,1]。

  • X 是均勻分佈的積分上限。

  • A 是均勻分佈的第一個引數。

  • B 是均勻分佈的第二個引數。

<?php
   // which = 1 : calculate P from (X, A, B)
   var_dump(stats_cdf_uniform(2.5, 1, 3, 1));  // A <= X <= B
   var_dump(stats_cdf_uniform(0, 1, 3, 1));    // X < A
   var_dump(stats_cdf_uniform(4, 1, 3, 1));    // X > B
?>

輸出

這將產生以下結果:

float(0.75) float(0) float(1)

示例

在以下示例中,當 which=2 時,計算 (P, A, B) 的 X。

  • P 是均勻分佈從 0 到 X 的積分。輸入範圍:[0,1]。

  • X 是均勻分佈的積分上限。

  • A 是均勻分佈的第一個引數。

  • B 是均勻分佈的第二個引數。

<?php
   // which = 2 : calculate X from (P, A, B)
   var_dump(stats_cdf_uniform(0.75, 1, 3, 2));
?>

輸出

這將產生以下結果:

float(2.5)

示例

在以下示例中,當 which=3 時,計算 (P, X, B) 的 A。

  • P 是均勻分佈從 0 到 X 的積分。輸入範圍:[0,1]。

  • X 是均勻分佈的積分上限。

  • A 是均勻分佈的第一個引數。

  • B 是均勻分佈的第二個引數。

<?php
   // which = 3 : calculate A from (P, X, B)
   var_dump(stats_cdf_uniform(0.75, 2.5, 3, 3));
?>

輸出

這將產生以下結果:

float(1)

示例

在以下示例中,當 which=4 時,計算 (P, X, A) 的 B。

  • P 是均勻分佈從 0 到 X 的積分。輸入範圍:[0,1]。

  • X 是均勻分佈的積分上限。

  • A 是均勻分佈的第一個引數。

  • B 是均勻分佈的第二個引數。

<?php
   // which = 4 : calculate B from (P, X, A)
   var_dump(stats_cdf_uniform(0.75, 2.5, 1, 4));
?>

輸出

這將產生以下結果:

float(3)

示例

以下是一個錯誤案例。在以下示例中,which<1,日誌中會顯示警告。

<?php
   var_dump(stats_cdf_uniform(2.5, 1, 3, 0));  // which < 1
?>

輸出

這將產生以下結果,並在日誌中顯示警告:PHP Warning: stats_cdf_uniform(): 第四個引數應在 1..4 範圍內

bool(false)

示例

以下是一個錯誤案例。在以下示例中,which>4,日誌中會顯示警告。

<?php
   var_dump(stats_cdf_uniform(2.5, 1, 3, 5));  // which > 4
?>

輸出

這將產生以下結果,並在日誌中顯示警告:PHP Warning: stats_cdf_uniform(): 第四個引數應在 1..4 範圍內

bool(false)
廣告