由方差如何推导数字序列的特征
已知的5个整数,其总体方差为2。是否可推导出5个整数是连续整数。如3、2、1、4、5
如是,如何证明。
如不是,请举反例。
第一次发贴,多多指教。 如果5个整数不能相同,则结论成立:5个整数是连续整数
如果可以相同,则不成立,反例: 000 1 3
假设 5 个整数 $s_1$、$s_2$、$s_3$、$s_4$、$s_5$ 的算术平均数为 $bar s$ ,设
$t_1=s_5-bar s$
$t_2=s_5-bar s$
$t_3=s_5-bar s$
$t_4=s_5-bar s$
$t_5=s_5-bar s$
则 $t_1$、$t_2$、$t_3$、$t_4$、$t_5$ 的方差与 $s_1$、$s_2$、$s_3$、$s_4$、$s_5$ 相同,且
$t_1$、$t_2$、$t_3$、$t_4$、$t_5$ 的平均数为0
由方差为2,得
$(t_1^2+t_2^2+t_3^2+t_4^2+t_5^2)/5=2$
所以
$t_1^2+t_2^2+t_3^2+t_4^2+t_5^2=10$
由此,得
$t_i^2<=10$
所以 $t_i$ 只可能是 -3,-2,-1,0,1,2,3
如果有某个 $t_i^2$ 为 9,则余下的四个数的平方和只能为 1,所以余下的四个数只能是 0、0、0、$+-1$。
所以,$t_i^2$ 不能为 9
由此得 $t_i$ 的取值为: -2、-1、0、1、2 谢谢楼上。但0,0,0,1,3的总体方差不为2呀。 谢谢悟空,OK了。 不过反例不适用,我没有找到反例。 2# sunwukong
论证还是有问题。Ti不一定是整数。 继续求严密论证。 考虑不周,2楼的证明是错的。
更正如下
假设 5 个整数 $s_1$、$s_2$、$s_3$、$s_4$、$s_5$ 的算术平均数为$bar s$,设
$t_1=5(s_1-bar s)$
$t_2=5(s_2-bar s)$
$t_3=5(s_3-bar s)$
$t_4=5(s_4-bar s)$
$t_5=5(s_5-bar s)$
则 $t_1$、$t_2$、$t_3$、$t_4$、$t_5$ 这5个数是整数,方差是 $s_1$、$s_2$、$s_3$、$s_4$、$s_5$ 的方差的 $5^2$ 倍,且平均数为 0,
由$s_1$、$s_2$、$s_3$、$s_4$、$s_5$的方差为2,得
$(t_1^2+t_2^2+t_3^2+t_4^2+t_5^2)/5=2*5^2$
所以
$t_1^2+t_2^2+t_3^2+t_4^2+t_5^2=250$
问题转化为:
5个整数 $t_1$、$t_2$、$t_3$、$t_4$、$t_5$ 满足:
$t_1+t_2+t_3+t_4+t_5=0$
$t_1^2+t_2^2+t_3^2+t_4^2+t_5^2=250$
求所有的解 这5个数是连续整数.
==================
由于平均数对总体方差不产生影响,我们不妨直接假定平均数为0,于是 5个数平方和就是10了.
5个整数 $t_1$、$t_2$、$t_3$、$t_4$、$t_5$ 满足:
$t_1+t_2+t_3+t_4+t_5=0$
$t_1^2+t_2^2+t_3^2+t_4^2+t_5^2=10$
由于是整数解,所以只需要枚举即可很快得到答案.
当然也可以用程序可以验证.a = t /@ Range;a /. List@ToRules@Reduce == 0 && Variance == 5/2, a, Integers]这120个解,其实就是全排列,5! 程序验证
// 求出
// i1+i2+i3+i4+i5=0
// i1^2+i2^2+i3^2+i4^2+i5^2=250
// 的所有解
int i,i1,i2,i3,i4,i5;
int sum,sum1,sum2,sum3,sum4;
int s2,s3,s4,s5;
char Syb;
int flag;
Syb = '+';
Syb = '-';
flag = 1;
flag = -1;
for(i1=0; i1<=7; i1++){
sum1 = i1 * i1;
for(i2=i1; i2<=7; i2++){
s2 = i2 * i2;
if(sum1 + s2 * 4 > 250) break;
sum2 = sum1 + s2;
for(i3=i2; i3<=9; i3++){
s3 = i3 * i3;
if(sum2 + s3 * 3 > 250) break;
sum3 = sum2 + s3;
for(i4=i3; i4<=11; i4++){
s4 = i4 * i4;
if(sum3 + s4 * 2 > 250) break;
s5 = 250 - sum3 - s4;
i5 = sqrt(s5);
if(i5 * i5 == s5){
// i1 保持为正,轮换 i2 i3 i4 i5 的符号,让其和为 0,
for (i=0; i<0b10000; i++){
sum =i1;
sum += flag * i2;
sum += flag * i3;
sum += flag * i4;
sum += flag * i5;
if ( sum == 0 ){
cout << Syb << i1
<< Syb << i2
<< Syb << i3
<< Syb << i4
<< Syb << i5
<< endl;
break;
} // end of if
} //end of i
} //end of i5
}// end of i4
}// end of i3
}// end of i2
} // end of i1
页:
[1]
2