LIST STAT STD DEV/ja
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
解説
定数: integer LIST_STAT_STD_DEV = 5;integer 定数 LIST_STAT_STD_DEV の値は 5 です。
リストの数値の標本標準偏差を返します。
<lsl>
float sample_standard_deviation = llListStatistics( LIST_STAT_STD_DEV, numList );
</lsl>
標準偏差とは、数値がどのように散らばっているかの指標で、各数値の二乗を合計し、その平均の平方根として求めます:
<lsl>
integer count = (integer)llListStatistics( LIST_STAT_NUM_COUNT, numList );
float standard_deviation = llSqrt( llListStatistics( LIST_STAT_SUM_SQUARES , numList ) ) / count;
</lsl>
標本標準偏差とは、対象となる数字全ては含まない (含められない) 場合 (例えば SL の全てのプリムの総体といった場合) に使われます。その結果、真の標準偏差は以下のように定義される標本標準偏差によって推定されます。
<lsl>
integer count = (integer)llListStatistics( LIST_STAT_NUM_COUNT, numList );
float sample_standard_deviation = llSqrt( llListStatistics( LIST_STAT_SUM_SQUARES , numList ) ) / (count - 1);
</lsl>
標本標準偏差は以下のようにしても求められます。
<lsl>
list numList = [1,1,1,2,1000,1000,1000]; integer count = llGetListLength( numList ); float sum = 0; float mean = llListStatistics( LIST_STAT_MEAN, numList ); integer i = 0; for (; i<count; ++i) { float val = llList2Float( numList, i ); float diff = val - mean; sum += ( diff * diff ); } float sample_stdev = llSqrt( sum / (count - 1) ); float true_stdev = llSqrt( sum / count ); llOwnerSay((string)true_stdev); llOwnerSay((string)sample_stdev); llOwnerSay((string)llListStatistics( LIST_STAT_STD_DEV, numList ));
} </lsl>
関連記事
関数
• | llListStatistics |