有一个二维数组,欲对其进行统计
Dluxd 2006-04-25 12:46:20 现有一个二维数组如下,欲对其进行统计。
====================================
string[,] strArr = new string[32,2];
strArr[0,0]="1999-01-01 04:00:00"; strArr[0,1]="9.2";
strArr[1,0]="1999-01-01 04:30:00"; strArr[1,1]="12.1";
strArr[2,0]="1999-01-01 05:00:00"; strArr[2,1]="11.1";
strArr[3,0]="1999-01-01 05:30:00"; strArr[3,1]="12.5";
strArr[4,0]="1999-01-01 06:00:00"; strArr[4,1]="12.0";
strArr[5,0]="1999-01-01 06:30:00"; strArr[5,1]="15.4";
strArr[6,0]="1999-01-01 07:00:00"; strArr[6,1]="15.2";
strArr[7,0]="1999-01-01 07:30:00"; strArr[7,1]="14.0";
strArr[8,0]="1999-01-01 08:00:00"; strArr[8,1]="13.0";
strArr[9,0]="1999-01-01 08:30:00"; strArr[9,1]="16.1";
strArr[10,0]="1999-01-01 09:00:00"; strArr[10,1]="16.4";
strArr[11,0]="1999-01-01 09:30:00"; strArr[11,1]="18.1";
strArr[12,0]="1999-01-01 10:00:00"; strArr[12,1]="17.1";
strArr[13,0]="1999-01-01 10:30:00"; strArr[13,1]="14.0";
strArr[14,0]="1999-01-01 11:00:00"; strArr[14,1]="14.1";
strArr[15,0]="1999-01-01 11:30:00"; strArr[15,1]="15.0";
strArr[16,0]="1999-01-01 12:00:00"; strArr[16,1]="15.2";
strArr[17,0]="1999-01-01 12:30:00"; strArr[17,1]="15.9";
strArr[18,0]="1999-01-01 13:00:00"; strArr[18,1]="19.1";
strArr[19,0]="1999-01-01 13:30:00"; strArr[19,1]="20.4";
strArr[20,0]="1999-01-01 14:00:00"; strArr[20,1]="15.3";
strArr[21,0]="1999-01-01 14:30:00"; strArr[21,1]="15.1";
strArr[22,0]="1999-01-01 15:00:00"; strArr[22,1]="14.4";
strArr[23,0]="1999-01-01 15:30:00"; strArr[23,1]="13.4";
strArr[24,0]="1999-01-01 16:00:00"; strArr[24,1]="14.4";
strArr[25,0]="1999-01-01 16:30:00"; strArr[25,1]="16.7";
strArr[26,0]="1999-01-01 17:00:00"; strArr[26,1]="16.1";
strArr[27,0]="1999-01-01 18:00:00"; strArr[27,1]="16.0";
strArr[28,0]="1999-01-01 18:30:00"; strArr[28,1]="15.0";
strArr[29,0]="1999-01-01 19:00:00"; strArr[29,1]="15.1";
strArr[30,0]="1999-01-01 20:00:00"; strArr[30,1]="14.1";
strArr[31,0]="1999-01-01 20:30:00"; strArr[31,1]="8.2";
====================================
有参数x、y、m、n、k(皆为变量)
x、y 为参照值(y>x)
m为组数,n为小于x组数(大于y的组数与其相同,m>2n,n>0),
则k为在x、y间的组数(k=m-2*n),
组距r=(x-y)/k
则可以得到分组的范围
(x-n*r) <= 第1组 < (x-(n-1)*r)
(x-(n-1)*r) <= 第2组 < (x-(n-2)*r)
|
|
(x-(n-((n-1)-1))*r) <= 第n-1组 < (x-(n-(n-1))*r)
(x-r) <= 第n组 < x
x <= 第n+1组 < x+r
|
|
x+(k-1)*r <= 第n+k组 < x+k*r //**其中 x+k*r=y
x+k*r <= 第n+k+1组 < y+r //**其中 x+k*r=y
|
|
y+((m-1)-1)*r <= 第m-1组 < y+(m-1)*r
y+(m-1)*r <= 第m组 < y+m*r
说明
1、对于小于第1组下限的数据都统计到第1组中(也就是所有小于第1组上限的全部统计到第1组中)。
2、对于大于第m组上限的数据都统计到第m组中(也就是所有大于第m组下限的全部统计到第m组中)。
现想统计按以上分组所得的各组的频次,
设x=12.5 y=17.5 m=9 n=2 则可以得到
========================================
组名 范围 频次
----------------------------------------
第1组 11.5以下 3
第2组 11.5-12.5 1
第3组 12.5-13.5 3
第4组 13.5-14.5 6
第5组 14.5-15.5 8
第6组 15.5-16.5 5
第7组 16.5-17.5 2
第8组 17.5-18.5 1
第9组 18.5以上 2
-----------------------------------------