標準統計量ライブラリ 使用例



[ 簡単な説明 ]

標準統計量ライブラリの使用例です。

プログラム・ソース("test19.c")           top (先頭に戻る)
/*		test19.c				*/
#include	<stdio.h>
#include	<stdlib.h>
#include	"sslib.h"

void prk(int a[], int n);
void pra(double a[], int n);

void prk(int a[], int n)
{
	int i;

	for(i = 0; i < n; i++)	printf("%7d ", a[i]);
	putchar('\n');
}

void pra(double a[], int n)
{
	int i;

	for(i = 0; i < n; i++)	printf("%7.4f ", a[i]);
	putchar('\n');
}

int main(void)
{
	double a[100];
	int k[100], i, n;
	char s[100][7];

	n = 100;
	for(i = 0; i < n; i++)	a[i] = (double)rand() / RAND_MAX;

	pra(a, n);
	sortd1(a, n);
	sortd2(a, n);
	pra(a, n);
	sortdi1(a, n, k);
	prk(k, n);

	n = 100;
	for(i = 0; i < n; i++)	k[i] = rand() / 32;

	prk(k, n);
	sorti1(k, n);
	prk(k, n);

	return 1;
}

出力結果 1           top (先頭に戻る)
 0.0106  0.0040  0.3352  0.0333  0.3557  0.2172  0.5370  0.1958  0.7003  0.9499
 0.2748  0.4443  0.1090  0.6982  0.5643  0.0415  0.1652  0.8155  0.6855  0.7644
 0.8276  0.9595  0.2194  0.4268  0.9526  0.8395  0.9232  0.8109  0.4510  0.6048
 0.6617  0.5997  0.5492  0.7200  0.1140  0.4062  0.1214  0.6713  0.4749  0.4911
 0.5643  0.3445  0.8687  0.2644  0.1798  0.4231  0.6948  0.1637  0.5383  0.6455
 0.6234  0.0031  0.7872  0.2689  0.4611  0.3865  0.3768  0.5811  0.6035  0.2798
 0.1706  0.8052  0.2950  0.3339  0.4086  0.2404  0.4140  0.0543  0.4941  0.9837
 0.0016  0.4098  0.0697  0.0739  0.2543  0.9747  0.3551  0.4049  0.1971  0.1971
 0.2117  0.2490  0.7581  0.8894  0.9054  0.7360  0.4613  0.5316  0.0353  0.1306
 0.4580  0.4840  0.5970  0.2532  0.1146  0.7013  0.6493  0.8863  0.8756  0.0428
 0.9837  0.9747  0.9595  0.9526  0.9499  0.9232  0.9054  0.8894  0.8863  0.8756
 0.8687  0.8395  0.8276  0.8155  0.8109  0.8052  0.7872  0.7644  0.7581  0.7360
 0.7200  0.7013  0.7003  0.6982  0.6948  0.6855  0.6713  0.6617  0.6493  0.6455
 0.6234  0.6048  0.6035  0.5997  0.5970  0.5811  0.5643  0.5643  0.5492  0.5383
 0.5370  0.5316  0.4941  0.4911  0.4840  0.4749  0.4613  0.4611  0.4580  0.4510
 0.4443  0.4268  0.4231  0.4140  0.4098  0.4086  0.4062  0.4049  0.3865  0.3768
 0.3557  0.3551  0.3445  0.3352  0.3339  0.2950  0.2798  0.2748  0.2689  0.2644
 0.2543  0.2532  0.2490  0.2404  0.2194  0.2172  0.2117  0.1971  0.1971  0.1958
 0.1798  0.1706  0.1652  0.1637  0.1306  0.1214  0.1146  0.1140  0.1090  0.0739
 0.0697  0.0543  0.0428  0.0415  0.0353  0.0333  0.0106  0.0040  0.0031  0.0016
 99      98      97      96      95      94      93      92      91      90      
 89      88      87      86      85      84      83      82      81      80      
 79      78      77      76      75      74      73      72      71      70      
 69      68      67      66      65      64      63      62      61      60      
 59      58      57      56      55      54      53      52      51      50      
 49      48      47      46      45      44      43      42      41      40      
 39      38      37      36      35      34      33      32      31      30      
 29      28      27      26      25      24      23      22      21      20      
 19      18      17      16      15      14      13      12      11      10      
  9       8       7       6       5       4       3       2       1       0 
    566     522     635     789     259     222     241     343     579     136
    628      31     971     217     827     644     732     749     565     585
    172     340     890     844     629     976    1015    1005     755     522
    302     735     292     655     504     179     572     393     793     398
    666     130     148     344     941     670     664     726     671     677
    738    1021     431     575     385    1007      15     964     463     243
    559     506     641     724     597     808     442       3     855     733
   1010     468     361     961     659     578     715     228     317     919
     73     980     627      83     867     744     690     947     505     292
    697     317     363     773    1000     943     250     420     935     429
      3      15      31      73      83     130     136     148     172     179
    217     222     228     241     243     250     259     292     292     302
    317     317     340     343     344     361     363     385     393     398
    420     429     431     442     463     468     504     505     506     522
    522     559     565     566     572     575     578     579     585     597
    627     628     629     635     641     644     655     659     664     666
    670     671     677     690     697     715     724     726     732     733
    735     738     744     749     755     773     789     793     808     827
    844     855     867     890     919     935     941     943     947     961
    964     971     976     980    1000    1005    1007    1010    1015    1021

プログラム・ソース("test20.c")           top (先頭に戻る)
/*		test20.c			*/
#include	<stdio.h>
#include	"sslib.h"

int main(void)
{
	static double a[6] = {14., 16., 18., 20., 25., 27.};
	double min, max, amp, sum, sum2, ave, gmean, hmean, amad, s, v, st, uv, squv, cv;
	double sk, ku;
	int i, n;

	n = 6;
	stat(a, n, &min, &max, &amp, &sum, &sum2, &ave, &gmean, &hmean, &amad, &s,
		&v, &st, &uv, &squv, &cv, &sk, &ku);
	printf("*** data ***\n");
	for(i = 0; i < n; i++)	printf("%6.1f", a[i]);

	putchar('\n');
	printf("総和(total, sum)                                   : %e\n", sum);
	printf("二乗和(sum of square)                              : %e\n", sum2);
	printf("最大値(maximum)                                    : %e\n", max);
	printf("最小値(minimum)                                    : %e\n", min);
	printf("中点値(mid point)                                  : %e\n", amp);
	printf("算術平均値(arithmetic mean)                        : %e\n", ave);
	printf("幾何平均値(geometric mean)                         : %e\n", gmean);
	printf("調和平均値(harmonic mean)                          : %e\n", hmean);
	printf("平均絶対偏差(mean absolute deviation)              : %e\n", amad);
	printf("偏差平方和(sum of square of deviation)             : %e\n", s);
	printf("分散(variance)                                     : %e\n", v);
	printf("標準偏差(standard deviation)                       : %e\n", st);
	printf("不偏分散(unbiased estimate of population variance) : %e\n", uv);
	printf("不偏分散平方根(square root of UV)                  : %e\n", squv);
	printf("算術平均に対する変動係数(coefficient of variance)  : %e\n", cv);
	printf("歪度(skewness)                                     : %e\n", sk);
	printf("尖度(kurtosis)                                     : %e\n", ku);

	return 1;
}

出力結果 2           top (先頭に戻る)
*** data ***
  14.0  16.0  18.0  20.0  25.0  27.0
総和(total, sum)                                   : 1.200000e+02
二乗和(sum of square)                              : 2.530000e+03
最大値(maximum)                                    : 2.700000e+01
最小値(minimum)                                    : 1.400000e+01
中点値(mid point)                                  : 2.050000e+01
算術平均値(arithmetic mean)                        : 2.000000e+01
幾何平均値(geometric mean)                         : 1.946745e+01
調和平均値(harmonic mean)                          : 1.895608e+01
平均絶対偏差(mean absolute deviation)              : 4.000000e+00
偏差平方和(sum of square of deviation)             : 1.300000e+02
分散(variance)                                     : 2.166667e+01
標準偏差(standard deviation)                       : 4.654747e+00
不偏分散(unbiased estimate of population variance) : 2.600000e+01
不偏分散平方根(square root of UV)                  : 5.099020e+00
算術平均に対する変動係数(coefficient of variance)  : 2.327373e+01
歪度(skewness)                                     : 2.974631e-01
尖度(kurtosis)                                     : 1.631006e+00