0

1 から MAX までの数値の対数範囲を計算したいと思います。数値のおおよその総数は TOTAL です。

非対数の例は次のようになります。

$max = 3600;
$total = 100;

$range = array();
for($i = $total; $i > 0; $i--){
  $range[] = round($max/$i);
}

ただし、これにより、ほぼ均等に分散された範囲が作成されます。対数スケールを使用して、範囲の最初にその数値の大部分があり、最後に向かって数値が少なくなるようにしたいと思います。値の総数は厳密な制限ではなく、単なる見積もりです。

4

2 に答える 2

2

対数目盛の面白い点は、$range配列の要素 (後でx関数の値を計算するために使用する値fct(x)) が実際には対数ではなく指数関数的動作をすることです。このウィキペディアの画像を見ると、軸の目盛りが 10^1、10^2、10^3 などであることがわかります。これは指数関数的な成長です (関数自体ではなく、軸の目盛りについて話しているのです!) .

これを生成するには、使用します

$max = 3600;
$total = 100;

$range = array();
for($i = 0; $i < $total; $i++) {
  $range[] = pow($max,$i/($total - 1));
}
于 2013-01-19T11:54:00.650 に答える
0

ここではPDLを使用するのが最善の策のようです。

require_once '../LognormalDistribution.php'; 
require_once 'make_table.php'; 

$mu     = 0.0;
$sigma  = 1.0;

$lognormal = new LognormalDistribution($mu, $sigma);

$Output1 = $lognormal->PDF(.2); 
$Output2 = $lognormal->ICDF(0.95); 
$Output3 = $lognormal->CDF(.50); 

それが役立つことを願っています...

于 2013-01-18T23:19:41.480 に答える