从算24猜想的一个问题。

Zee 2001-09-11 01:26:21
算24大概大家都玩过,在1-10中取4个数用四则运算求出24,现在说我的问题:
人人都知道不是任意的4个数字都可以算出24的,
当有4个数字时有比如象1,1,1,1这样的数对不能用四则运算求出24,如果我们把数字增加到5个,也有象1,1,1,1,1这样的数对不能求得24,但能算出24的数对会更多一些,一个合理的猜想是当取出足够多的数字,比如说200个(我猜大概不会那么多),那么任意这样的一组数字都可以求出24。
问题是:是否存在这样的一个数字N,从1-10中取出任意取N个数字都至少有一种办法通过四则运算求得24,如果存在,最小的N是多少?
...全文
380 42 打赏 收藏 举报
写回复
42 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Zee 2001-09-25
OK,给分了。
sietlkj() 和Mathe都给出了证明,Mathe的证明方法要好一些,不过sietlkj()的也不错的说,俺把分加到200,二位平分把 :)
  • 打赏
  • 举报
回复
sietlkj 2001-09-25
二、若n9=2,则其余7个数分布在(2,3,4,5,6,7,8,9,10)中;
若剩余7个数中有2,则24=(10+2)*2,剩余7个(2-10)中任意数计算为0,证明见附1;
若剩余7个数中有3,则24=(10-2)*3,剩余6个(3-10)中任意数计算为0,证明见附1;
若剩余7个数中有4,则24=10*2+4,剩余6个(4-10)中任意数计算为0,证明见附1;
若剩余7个数中有7,则24=10+2*7,剩余6个(4-10)中任意数计算为0,证明见附1;
若剩余7个数中无2,3,4,7,则其余7个数分布在(5,6,8,9,10)中;
1、若n8=5,其余6个数分布在(5,6,8,9,10)中;
若剩余6个数中有6,则24=(2+10/5)*6,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=(10-5-2)*8,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有9,则24=10*2-5+9,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有10,则24=(10+2)*10/5,剩余5个(5-10)计算为0,证明见附1;
若剩余6个数中无6,8,9,10,则24=10*2+5-5/5+(5-5)*5*5;
2、若n8=6,其余6个数分布在(6,8,9,10)中;
若剩余6个数中有6,则24=6*6-10-2,剩余5个(6-10)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=6*8/2+10*0,剩余5个(8,9,10)中任意数计算为0,证明见附1;
若剩余6个数中有9,则24=(9-6)*(10-2),剩余5个(9,10)中任意数计算为0,证明见附1;
若剩余6个数中有10,则24=10+10+6-2,剩余5个10计算为0,证明见附1;
3、若n8=8,其余6个数分布在(8,9,10)中;
若剩余6个数中有8,则24=8+8+10-2,剩余5个(8,9,10)中任意数计算为0,证明见附1;
若剩余6个数中有9,则24=(10+2-9)*8,剩余5个(9,10)中任意数计算为0,证明见附1;
若剩余6个数中有10,则24=10+10+8/2,剩余5个10计算为0,证明见附1;
4、若n8=9,其余6个数分布在(9,10)中;
(1)若n7=9,则其余5个数分布在(9,10)中;
若剩余5个数中有9,则24=2*(10+(9+9)/9),剩余4个(9,10)中任意数计算为0,证明略;
剩余5个10,则24=9+9+10/2+10/10,剩余3个10计算为0,证明略;
(2)若n7=10,则其余5个10,24=(10+2)*(10-9+9/9)+(10-10)*10;
5、若n8=10,其余6个10,24=10+10+2+(10+10)/10+(10-10)*10;
三、若n9=3,则其余7个数分布在(3,4,5,6,7,8,9,10)中;
若剩余7个数中有6,则24=10*3-6,剩余6个(3-10)中任意数计算为0,证明见附1;
若剩余7个数中有8,则24=8*3+10*0,剩余6个(3-10)中任意数计算为0,证明见附1;
若剩余7个数中无6,8,则其余7个数分布在(3,4,5,7,9,10)中;
1、若n8=3,其余6个数分布在(3,4,5,7,9,10)中;
若剩余6个数中有3,则24=10*3-3-3,剩余5个(3-10)中任意数计算为0,证明见附1;
若剩余6个数中有4,则24=(3+3)*4+10*0,剩余5个(4-10)中任意数计算为0,证明见附1;
若剩余6个数中有5,则24=10+5+3*3,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有7,则24=3*7+3+10*0,剩余5个(7,9,10)计算为0,证明见附1;
若剩余6个数中有9,则24=3*9-3+10*0,剩余5个(9,10)中任意数计算为0,证明见附1;
剩余6个10,则24=10+10+3+10/10,剩余3个10计算为0;
2、若n8=4,其余6个数分布在(4,5,7,9,10)中;
若剩余6个数中有4,则24=(10-3)*4-4,剩余5个(4-10)中任意数计算为0,证明见附1;
若剩余6个数中有5,则24=10/5*4*3,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有7,则24=(10-7+3)*4,剩余5个(7,9,10)计算为0,证明见附1;
若剩余6个数中有9,则24=4*(9-3)+10*0,剩余5个(9,10)中任意数计算为0,证明见附1;
剩余6个10,则24=10*3+4-10,剩余5个10计算为0;
3、若n8=5,其余6个数分布在(5,7,9,10)中;
若剩余6个数中有7,则24=(10-7+5)*3,剩余5个(5,7,9,10)计算为0,证明见附1;
若剩余6个数中有9,则24=10+9+5+3*0,剩余5个(5,9,10)中任意数计算为0,证明见附1;
(1)若n7=5,则其余5个数分布在(5,10)中;
若剩余5个数中有5,则24=5*5-3+10/5,剩余4个(5,10)中任意数计算为0,证明略;
若剩余5个数中有10,则24=5*5-10/10+3*0,剩余4个10计算为0,证明略;
(2)若n7=10,则其余5个10,24=10+10+3+10/10+(10-10)*10*5;
4、若n8=7,其余6个数分布在(7,9,10)中;
若剩余6个数中有7,则24=3*7+10-7,剩余5个(7,9,10)计算为0,证明见附1;
若剩余6个数中有9,则24=3*9-10+7,剩余5个(9,10)中任意数计算为0,证明见附1;
剩余6个10,则24=10+10+7-3,剩余5个10计算为0;
5、若n8=9,其余6个数分布在(9,10)中;
若剩余6个数中有9,则24=3*(9-10+9),剩余5个(9,10)中任意数计算为0,证明见附1;
剩余6个10,则24=3*(9-10/10),剩余5个10计算为0;
6、若n8=10,其余6个10,24=10+10+3+10/10, 剩余4个10计算为0;
四、若n9=4,则其余7个数分布在(4,5,6,7,8,9,10)中;
若剩余7个数中有4,则24=(10-4)*4,剩余6个(4-10)中任意数计算为0,证明见附1;
若剩余7个数中有6,则24=4*6+10*0,剩余6个(5-10)中任意数计算为0,证明见附1;
若剩余7个数中有10,则24=10+10+4,剩余6个(5-10)中任意数计算为0,证明见附1;
1、若n8=5,其余6个数分布在(5,7,8,9)中;
若剩余6个数中有5,则24=10+4+5+5,剩余5个(5,7,8,9)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=(8-10/5)*4,剩余5个(7,8,9)计算为0,证明见附1;
若剩余6个数中有9,则24=(10+5-9)*4,剩余5个(7,9)中任意数计算为0,证明见附1;
剩余6个7,则24=(7-10/5+7/7)*4,剩余3个7计算为0;
2、若n8=7,其余6个数分布在(7,8,9)中;
若剩余6个数中有7,则24=10+7+7+4*0,剩余5个(7,8,9)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=(7-4)*8+10*0,剩余5个(8,9)计算为0,证明见附1;
若剩余6个数中有9,则24=(7+9-10)*4,剩余5个9中任意数计算为0,证明见附1;
3、若n8=8,其余6个数分布在(8,9)中;
若剩余6个数中有8,则24=(8+8-10)*4,剩余5个(8,9)计算为0,证明见附1;
若剩余6个数中有9,则24=(4+9-10)*8,剩余5个9计算为0,证明见附1;
4、若n8=9,其余6个9,24=10+9+4+9/9,剩余4个9计算为0;
  • 打赏
  • 举报
回复
sietlkj 2001-09-25
n1=10:
一、若n9=1,则其余7个数分布在(1-10)中;
1、若n8=1,其余6个数分布在(1-10)中;
若剩余6个数中有2,则24=(10+1+1)*2,剩余5个(1-10)中任意数计算为0,证明见附1;
若剩余6个数中有3,则24=(10-1-1)*2,剩余5个(1-10)中任意数计算为0,证明见附1;
若剩余6个数中有4,则24=10*(1+1)+4,剩余5个(1-10)中任意数计算为0,证明见附1;
若剩余6个数中有7,则24=10+(1+1)*7,剩余5个(1-10)中任意数计算为0,证明见附1;
若剩余6个数中无2,3,4,7,则其余6个数分布在(1,5,6,8,9,10)中;
(1)若n7=1,则其余5个数分布在(1,5,6,8,9,10)中;
若剩余5个数中有1,则24=(10+1+1)*(1+1),剩余4个(1,5,6,8,9,10)中任意数计算为0,证明如下:
I、4个数中有重复数,则证明结束;
II、若剩余4个数中有1,则其余三个数不相邻的情况只有:(5,8,10)和(6,8,10),其他情况均有两1,
以上两情况中9个数分别是:(10,1,1,1,1,1,5,8,10),24=8*(1+1+1)+(10-10)*5*1*1;
(10,1,1,1,1,1,6,8,10),24=8*(1+1+1)+(10-10)*6*1*1;
III、剩余4个数中无1,则从(5,6,8,9,10)中取4个数的组合有以下几种情况:
(A)(6,8,9,10),9个数为(10,1,1,1,1,6,8,9,10),24=8*(1+1+1)+(10-10)*1*6*9;
(B)(5,8,9,10),9个数为(10,1,1,1,1,6,8,9,10),24=8*(1+1+1)+(10-10)*1*5*9;
(C)(5,6,9,10),0=(10-9)-(6-5);
(D)(5,6,8,10),0=(8-6)*5-10;
(E)(5,6,8,9),0=(9-8)-(6-5);
若剩余5个数中有5,则24=10*5/(1+1)-1,剩余4个(5,6,8,9,10)中任意数计算为0,证明如上;
若剩余5个数中有6,则24=10*(1+1+1)-6,剩余4个(6,8,9,10)中任意数计算为0,证明如上;
若剩余5个数中有8,则24=8*(1+1+1)+10*0,剩余4个(8,9,10)中任意数计算为0,证明略;
若剩余5个数中无1,5,6,8,则5个数分布在(9,10)中:
(A)若n6=9,则其余4个数分布在(9,10)中;
若剩余4个数中有9,则24=(10+1+1)*(1+9/9),剩余3个(9,10)中任意数计算为0,证明略;
若剩余4个数中有10,则24=(10+1+1)*(1+10-9),剩余3个10计算为0,证明略;
(B)若n6=10,则其余4个数都是10,24=(10+1+1)*(1+10/10),剩余3个10计算为0,证明略;
(2)若n7=5,则其余5个数分布在(5,6,8,9,10)中;
若剩余5个数中有5,则24=(10-5)*5-1*1,剩余4个(5,6,8,9,10)中任意数计算为0,证明如上;
若剩余5个数中有6,则24=(10-5-1)*6*1,剩余4个(6,8,9,10)中任意数计算为0,证明如上;
若剩余5个数中有8,则24=(10-5-1-1)*8,剩余4个(8,9,10)中任意数计算为0,证明略;
若剩余5个数中有9,则24=10+9+5+1-1,剩余4个(9,10)中任意数计算为0,证明略;
若剩余5个数中有10,则24=10+10+5-1*1,剩余4个10计算为0,证明略;
(3)若n7=6,则其余5个数分布在(6,8,9,10)中;
若剩余5个数中有6,则24=(10-6)*6+1-1,剩余4个(6,8,9,10)中任意数计算为0,证明如上;
若剩余5个数中有8,则24=(10-6-1)*8*1,剩余4个(8,9,10)中任意数计算为0,证明略;
若剩余5个数中有9,则24=10+9+6-1*1,剩余4个(9,10)中任意数计算为0,证明略;
若剩余5个数中有10,则24=10+10+6-1-1,剩余4个10计算为0,证明略;
(4)若n7=8,则其余5个数分布在(8,9,10)中;
若剩余5个数中有8,则24=(10-1-1)+8+8,剩余4个(8,9,10)中任意数计算为0,证明略;
若剩余5个数中有9,则24=(10-9+1+1)*8,剩余4个(9,10)中任意数计算为0,证明略;
若剩余5个数中有10,则24=(10/10+1+1)*8,剩余4个10计算为0,证明略;
(5)若n7=9,则其余5个数分布在(9,10)中;
(A)若n6=9,则其余4个数分布在(9,10)中;
若剩余4个数中有9,则24=(10+1+1)*(9+9)/9,剩余3个(9,10)中任意数计算为0,证明略;
剩余4个10,则24=(10+1+1)*(10/10+9/9)+(10-10);
(B)若n6=10,则其余4个10,24=(10+1+1)*(10-9+10/10)+(10-10);
(6)若n7=10,则其余5个10,24=(10+1+1)*(10+10)/10+(10-10)*10;
2、若n8=2,其余6个数分布在(2,3,4,5,6,7,8,9,10)中;
若剩余6个数中有2,则24=(10+2)*2*1,剩余5个(2-10)中任意数计算为0,证明见附1;
若剩余6个数中有3,则24=(10+2)*(3-1),剩余5个(3-10)中任意数计算为0,证明见附1;
若剩余6个数中有4,则24=(10/2+1)*4,剩余5个(4-10)中任意数计算为0,证明见附1;
若剩余6个数中有5,则24=10*2+5-1,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有6,则24=(10/2-1)*6,剩余5个(6-10)中任意数计算为0,证明见附1;
若剩余6个数中有7,则24=10+2*7*1,剩余5个(7-10)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=8*(1+2)+10*0,剩余5个(8-10)中任意数计算为0,证明见附1;
若剩余6个数中无2,3,4,5,6,7,8,则其余6个数分布在(9,10)中;
(1)若n7=9,则其余5个数分布在(9,10)中;
若剩余5个数中有9,则24=(10+2)*(1+9/9),剩余4个(9,10)中任意数计算为0,证明略;
若剩余5个数中有10,则24=(10+2)*(10+1-9),剩余4个10计算为0,证明略;
(2)若n7=10,则其余5个10,24=10+10+2+1+10/10+(10-10)*10;
3、若n8=3,其余6个数分布在(3,4,5,6,7,8,9,10)中;
若剩余6个数中有3,则24=(10-3+1)*3,剩余5个(3-10)中任意数计算为0,证明见附1;
若剩余6个数中有4,则24=(10-3-1)*4,剩余5个(4-10)中任意数计算为0,证明见附1;
若剩余6个数中有5,则24=3*5+10-1,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有6,则24=10*3-6*1,剩余5个(6-10)中任意数计算为0,证明见附1;
若剩余6个数中有7,则24=10*3-7+1,剩余5个(7-10)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=(10-1)*8/3,剩余5个(8-10)中任意数计算为0,证明见附1;
若剩余6个数中有9,则24=(9-1)*3+10*0,剩余5个(9-10)中任意数计算为0,证明见附1;
若剩余6个数中有10,则24=10+10+1+3,剩余5个10计算为0,证明见附1;
4、若n8=4,其余6个数分布在(4,5,6,7,8,9,10)中;
若剩余6个数中有4,则24=(10-4)*4*1,剩余5个(4-10)中任意数计算为0,证明见附1;
若剩余6个数中有5,则24=(10-5+1)*4,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有6,则24=4*6*1+10*0,剩余5个(6-10)中任意数计算为0,证明见附1;
若剩余6个数中有7,则24=(7-1)*4+10*0,剩余5个(7-10)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=(4-1)*8+10*0,剩余5个(8-10)中任意数计算为0,证明见附1;
若剩余6个数中有9,则24=10+1+4+9,剩余5个(9-10)中任意数计算为0,证明见附1;
若剩余6个数中有10,则24=10+10+4*1,剩余5个10计算为0,证明见附1;
5、若n8=5,其余6个数分布在(5,6,7,8,9,10)中;
若剩余6个数中有5,则24=5*5-1+10*0,剩余5个(5-10)中任意数计算为0,证明见附1;
若剩余6个数中有6,则24=(10-1-5)*6,剩余5个(6-10)中任意数计算为0,证明见附1;
若剩余6个数中有7,则24=5*7-10-1,剩余5个(7-10)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=(10/5+1)*8,剩余5个(8-10)中任意数计算为0,证明见附1;
若剩余6个数中有9,则24=10*1+5+9,剩余5个(9-10)中任意数计算为0,证明见附1;
若剩余6个数中有10,则24=10+10+5-1,剩余5个10计算为0,证明见附1;
6、若n8=6,其余6个数分布在(6,7,8,9,10)中;
若剩余6个数中有6,则24=(10-6*1)*6,剩余5个(6-10)中任意数计算为0,证明见附1;
若剩余6个数中有7,则24=(10-7+1)*6,剩余5个(7-10)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=(10-6-1)*8,剩余5个(8-10)中任意数计算为0,证明见附1;
若剩余6个数中有9,则24=10+9+6-1,剩余5个(9-10)中任意数计算为0,证明见附1;
剩余6个10,则24=10+10+6-1-10/10+(10-10)*10;
7、若n8=7,其余6个数分布在(7,8,9,10)中;
若剩余6个数中有7,则24=7+7+10*1,剩余5个(7-10)中任意数计算为0,证明见附1;
若剩余6个数中有8,则24=7+8+10-1,剩余5个(8-10)中任意数计算为0,证明见附1;
若剩余6个数中有9,则24=(10-7)*(9-1),剩余5个(9-10)中任意数计算为0,证明见附1;
剩余6个10,则24=10+10+7-1-(10+10)/10+(10-10);
8、若n8=8,其余6个数分布在(8,9,10)中;
若剩余6个数中有8,则24=(10-8+1)*8,剩余5个(8-10)中任意数计算为0,证明见附1;
若剩余6个数中无8,则其余6个数分布在(9,10)中;
(1)若n7=9,则其余5个数分布在(9,10)中;
(A)若n6=9,则其余4个数分布在(9,10)中;
若剩余4个数中有9,则24=(1+(9+9)/9)*8+10*0,剩余3个(9,10)中任意数计算为0,证明略;
剩余4个10,则24=(10/10+1+9/9)*8+(10-10)*10;
(B)若n6=10,则其余4个10,24=(10-9+1+10/10)*8+(10-10)*10;
(2)若n7=10,则其余5个10,24=(10+10+10)/10*8*1+(10-10)*10;
9、若n8=9,其余6个数分布在(9,10)中;
(1)若n7=9,则其余5个数分布在(9,10)中;
(A)若n6=9,则其余4个数分布在(9,10)中;
(a)若n5=9,则其余3个数分布在(9,10)中;
若剩余3个数中有9,则24=(9+9+9)/9*(9-1),剩余1个10和2个(9,10)中任意数计算为0,证明略;
剩余3个10,则24=(10/10+(9+9)/9)*(9-1)+(10-10);
(b)若n5=10,则其余3个10,24=((10+10)/10+9/9)*(9-1)+(10-10);
(B)若n6=10,则其余4个10,24=(10-9+(10+10)/10)*(9-1)+(10-10);
(2)若n7=10,则其余5个10,24=(10+10+10)/10*(9-1)+(10-10)*10;
10、若n8=10,其余6个10,24=10+10+1+(10+10+10)/10+(10-10);
  • 打赏
  • 举报
回复
sietlkj 2001-09-25
TO mathe();你说的太对了。其实我的方法是最原始的,用手工遍历证明。
你的方法使用了比我好的工具,证明高我一筹。
TO Zee:应给mathe()加分。
不过,我喜欢做事有始有终,现给出n1=10的证明,聊尽人意。当n1=8或9时,方法相同,但更简单,不往上贴了。对于取大于9个的数,只要在其中取出合适的九个数即可(因为上面证明绝大多数以0结束)。
证明见下:
  • 打赏
  • 举报
回复
mathe 2001-09-24
sietlkj() ,你的分类太复杂了,会误入歧途的。
我在上面已经给出了一种证明方法(不过使用了计算机枚举),不妨参考一下吧。其实证明的关键是在于降低枚举的复杂度。
  • 打赏
  • 举报
回复
wilddragon 2001-09-24
gz
  • 打赏
  • 举报
回复
sietlkj 2001-09-24
在证明n1>=8之前,先证明一个后续证明中用到的结论:
附1:补充证明:从1-10中任意取5个数,均可将其结果计算为0。
推论:从10个或以下的数中取5个或以上的数,其计算结果均可为0。
证明:一、当这五个数中有重复的数时,将其相减,在乘以其余数即可;
二、5个数不重复,则将其按从大到小排列,如:n1,n2,n3,n4,n5:
1、若n5=1,则在n1-n4中任两个数不能相邻,否则证明结束(条件1);
(1)若n4=2,则在n1-n3中任两个数不能计算得2,否则证明结束(条件2);
因为n4+n5=3,故n1-n3中任两个数不能计算得到3,否则证明结束(条件3);
根据以上三个条件,从3-10中取任意三个满足条件的数,显而易见,这是不可能的。
所以,当n5=1,n4=2时,不管n1-n3如何取,均可计算为0。
(2)n4不为2,这若n4=3,则在n1-n3中任两个数不能计算得3,否则证明结束(条件2);
因为n4-n5=2,故n1-n3中任两个数不能计算得到2,否则证明结束(条件3);
由上可知,n1-n3取不到数。
所以,当n5=1,n4=3时,不管n1-n3如何取,均可计算为0。
(3)n4>3,根据条件1,从4-10中取4个数满足条件1的情况只有:(4,6,8,10)
即:n1=10,n2=8,n3=6,n4=4,n5=1;而(n1-n2)-(n3-n4)=0;

所以,当n5=1时,不管n1-n4如何取,均可计算为0。
2、n5=2,则在n1-n4中任两个数不能计算得到2,否则证明结束(条件1);
(1)若n4=3,则在n1-n3中任两个数不能计算得3,否则证明结束(条件2);
因为n4-n5=1,故n1-n3中任两个数不能计算得到1,否则证明结束(条件3);
由上证明可知,n1-n3取不到数。
所以,当n5=2,n4=3时,不管n1-n3如何取,均可计算为0。
(2)若n4=4,则在n1-n3中任两个数不能计算得4,否则证明结束(条件2);
根据以上2个条件,从5-10中取任意三个满足条件的数,显而易见,这是不可能的。
(3)n4>4,则在5-10这6个数中任取4个数满足条件1的情况只有:(5,6,9,10)
即:n1=10,n2=9,n3=6,n4=5,n5=2;而(n1-n2)-(n3-n4)=0;

所以,当n5=2时,不管n1-n4如何取,均可计算为0。
3、n5=3,则在n1-n4中任两个数不能计算得到3,否则证明结束(条件1);
(1)若n4=4,则在n1-n3中任两个数不能计算得4,否则证明结束(条件2);
因为n4-n5=1,故n1-n3中任两个数不能计算得到1,否则证明结束(条件3);
根据以上3个条件,从5-10中取任意三个满足条件的数,显而易见,这是不可能的。
(2)若n4>4,则在5-10这6个数中任取4个数满足条件是不可能的。

所以,当n5=3时,不管n1-n4如何取,均可计算为0。
4、n5=4,则在n1-n4中任两个数不能计算得到4,否则证明结束(条件1);
则在5-10这6个数中任取4个数满足条件1的情况只有:
(5,6,7,8)、(5,7,8,10)、(6,7,8,9)、(7,8,9,10)
而这4组数计算0都是显而易见的。
5、n5>4,则在5-10这6个数中任取5个数,都必能计算得到两个1。

因此,从1-10中任意取5个数,其计算结果均可为0。
因为推论是上述结论的一部分子集,故正确,详细证明略。
  • 打赏
  • 举报
回复
wilddragon 2001-09-24
支持一把
  • 打赏
  • 举报
回复
wilddragon 2001-09-22
值得注意
  • 打赏
  • 举报
回复
wilddragon 2001-09-22
支持支持
  • 打赏
  • 举报
回复
mathe 2001-09-22
对于除了最多有一个3以外,所有数据都在S1或S4中的情况,我们只要小心分类就行了。
可以证明,给定3个S1中的数,可以由它们构造1-3中任意数。
1,1,1 ---〉1*1*1, 1+1*1, 1+1+1
1,1,2 ---〉2-1*1, 2*1*1, 2+1*1
1,2,2 ---〉2/2*1, 2*(2-1),2+2-1
2,2,2 ---〉2-2/2, 2*2/2, 2+2/2
同样可以归纳证明,给定n>=3个S1中的数,可以由它们构造1-n中任意一个数。

对于有且只有一个3的情况
如果CountOf(S4)>=2 and CountOf(S4)是偶数,任取S4中两个数a,b,则
21<=a+b+3<=23, 我们然后将其余S4中的数(偶数)两两转化为1,加上原先S1中的数,我们可以得到至少3个S1中的数,即我们可以用余下的数得到1,2,3中任意一个数,故可以得到24(21+3,22+2,23+1)。
如果CountOf(S4)>=3 and CountOf(S4)是奇数,任取3个S4中的数,a,b,c,则
24<=a+b+c-3<=27,由于S1中至少还有一个数,将S4中的余下数(偶数个)两两转化为1,加上原先S1中的数,我们同样可以得到至少3个S1中的数。故可以用余下数的构成1,2,3中任意的数,故可以得到24(24*1,25-1,26-2,27-1)。
如果CountOf(S4)=1,用公式 (10/2+1)*(3+1)和(9-1)*3就行了。
如果CountOf(S4)=0,由于余下8个数都在S1,它们可以构成8,8*3=24。

如果9个数都在S1或S4中:

S4.Count=0, (1+1+1)*(1+1)*(1+1)*(1+1)
(1+1+1)*(1+1)*(1+1)*1*2
(1+1+1)*(1+1)*2*2*1*1
(1+1+1)*2*2*2*1*1*1
(1+1+1)*(1+1)*2*2*2/2
(1+1+1)*2*2*2*2/2*1
(1+1+1)*2*2*2*(2-2/2)
(2+1)*2*2*2*(2-2/2)*1
(2+1)*2*2*2*2/2*2/2
(2+2/2)*2*2*2*(2-2/2)
S4.Count>=2,even
at least two 10s.
10+10+4 (4 from at least 4 numbers in S1)
at least two 9s
(9-1)*9/(2+1)
only one 10 and one 9
(10-2)*(9-1)/(2+1)
S4.Count>=1 odd
at least one 9
(9-1)*3 (3 from at least 3 numbers in S1)
only one 10 and S1
(10-2)*3 ( 2 from at least 2 numbers and 3 from at least 3 numbers in S1)
  • 打赏
  • 举报
回复
mathe 2001-09-22
Let me first filter out the most case.
下面我将同时使用推理和计算机验证
首先我们可以将1--10分成四个子集
S1={1,2},S2={3,4,5},S3={6,7,8},S4={9,10}
如果给定的集合中有不少于5个数,那么至少有两个数将在同一个子集中,
那么如果两个数相同,我们取它们的商,不同,取它们的差,结果将总是1或2。
通过这个方法,我们可以从9个数中取出6个数组成3个1或2。
这3个1或2我们总可以通过下面的方法转化为1个1和1个2。
2,2,2---〉2/2,2
2,2,1---〉2,2-1
2,1,1---〉2,1*1
1,1,1---〉1+1,1
为了将特例情况仅可能减少,现对上面的选取过程做一些排列。

限制1:当5的个数不少于三个,我们先选择两个5。
限制2:在5的个数少于三个以后,如果落在S4上(即9或10)数目不小于二,优先从S4中选取两个数。如果有两个10则优先选择。
限制3:在上面两个条件都不满足后,如果落在S1上(即1或2)数目不小于二,优先从S1中选取两个数。如果有两个1则优先选择。

通过上面的选择。我们将留下三个数,以及构造的一个1和一个2。

下面通过程序检验,有那些情况,这样的5个数无法得出24。

#include <stdio.h>

int result[1000];

#define ADD(x,y) ((x)+(y))
#define MUL(x,y) ((x)*(y))
#define SUB(x,y) ((x)-(y))

//This function return 1 if we can use {i,j} to construct V.
int Make2V(int i,int j,int V)
{
if(ADD(i,j)==V)return 1;
if(SUB(i,j)==V)return 1;
if(SUB(j,i)==V)return 1;
if(MUL(i,j)==V)return 1;
if(i==MUL(V,j))return 1;
if(j==MUL(V,i))return 1;
return 0;
}

//This function return 1 if we can construct V with {i,j,k} but we must first use i & j.
int Get3V(int i,int j,int k,int V)
{
int v1;
v1=ADD(i,j);
if(ADD(v1,k)==V)return 1; //(i+j)+k
if(SUB(v1,k)==V)return 1; //(i+j)-k
if(MUL(v1,k)==V)return 1; //(i+j)*k
if(v1==V*k)return 1; //(i+j)/k
if(SUB(k,v1)==V)return 1; //k-(i+j)
if(k==V*v1)return 1; //k/(i+j)
v1=SUB(i,j);
if(ADD(v1,k)==V)return 1; //(i-j)+k
if(SUB(v1,k)==V)return 1; //(i-j)-k
if(MUL(v1,k)==V)return 1; //(i-j)*k
if(v1==V*k)return 1; //(i-j)/k
if(SUB(k,v1)==V)return 1; //k-(i-j)
if(k==V*v1)return 1; //k/(i-j)
v1=SUB(j,i);
if(ADD(v1,k)==V)return 1; //(j-i)+k
if(SUB(v1,k)==V)return 1; //(j-i)-k
if(MUL(v1,k)==V)return 1; //(j-i)*k
if(v1==V*k)return 1; //(j-i)/k
if(SUB(k,v1)==V)return 1; //k-(j-i)
if(k==V*v1)return 1; //k/(j-i)
v1=MUL(i,j);
if(ADD(v1,k)==V)return 1; //(i*j)+k
if(SUB(v1,k)==V)return 1; //(i*j)-k
if(MUL(v1,k)==V)return 1; //(i*j)*k
if(v1==V*k)return 1; //(i*j)/k
if(SUB(k,v1)==V)return 1; //k-(i*j)
if(k==V*v1)return 1; //k/(i*j)

if(i+k*j==V*j)return 1; //(i/j)+k
if(i-k*j==V*j)return 1; //(i/j)-k
if(i*k==V*j)return 1; //(i/j)*k
if(i==V*j*k)return 1; //(i/j)/k
if(k*j-i==V*j)return 1; //k-(i/j)

if(j+k*i==V*i)return 1; //(j/i)+k
if(j-k*i==V*i)return 1; //(j/i)-k
if(j*k==V*i)return 1; //(j/i)*k
if(j==V*i*k)return 1; //(j/i)/k
if(k*i-j==V*i)return 1; //k-(j/i)
return 0;
}

//This function will return 1 if V can be made of {i,j,k}
int Make3V(int i,int j,int k,int V)
{
return Get3V(i,j,k,V)||Get3V(i,k,j,V)||Get3V(k,j,i,V);
}

//Print out all {i,j,k} that we could not use {1,2,i,j,k} to construct 24
//To simplify the printing, 10 will be printed out as 0.
int Search_i_j_k_2_1_For24()
{
int i,j,k;
int tcount=0;
tcount=0;
for(i=1;i<=10;i++)for(j=1;j<=i;j++)for(k=1;k<=j;k++)
{
int sum;
if(i==8||j==8||k==8)
{//the division or difference of another two should be between 1 and 9.
//9/(2+1)=3,8/2-1=3,(7-1)/2=3,6/2*1=3,5-2*1=3,4+1-2=3,3*(2-1)=3
//2+2-1=3,1+2*1=3.
continue;
}
if(i==6||j==6||k==6)
{//the division or difference of another two should be between 1 and 9.
//(9-1)/2=4,8/2*1=4,(7+1)/2=4,6/2+1=4,5-2+1=4,4*(2-1)=4,3+2-1=4
//2*2*1=4,(1+1)*2=4
continue;
}
if(i==4)
{
if(Make2V(j,k,2)||//(2+1)*(4+2)=24
Make2V(j,k,3)||//3*2*1*4=24
Make2V(j,k,4)||//(4+2)*1*4=24
Make2V(j,k,5)||//(5+2-1)*4=24
Make2V(j,k,6)||//6*4*(2-1)=24
Make2V(j,k,7)||//(7-2+1)*4=24
Make2V(j,k,8)||//(8-2)*1*4=24
Make2V(j,k,9)||//(9-2-1)*4=24
Make2V(j,k,10)||//(10/2+1)*4=24
Make2V(j,k,12))//12*4/2*1=24
continue;
}
if(j==4)
{
if(Make2V(i,k,2)||Make2V(i,k,3)||Make2V(i,k,4)||Make2V(i,k,5)||Make2V(i,k,6)||Make2V(i,k,7)||Make2V(i,k,8)||Make2V(i,k,9)||Make2V(i,k,12)||Make2V(i,k,10))
continue;
}
if(k==4)
{
if(Make2V(j,i,2)||Make2V(j,i,3)||Make2V(j,i,4)||Make2V(j,i,5)||Make2V(j,i,6)||Make2V(j,i,7)||Make2V(j,i,8)||Make2V(j,i,9)||Make2V(j,i,12)||Make2V(j,i,10))
continue;
}
if(i==3)
{
if(Make2V(j,k,3)||//(3+1)*3*2=24
Make2V(j,k,4)||//4*2*1*3=24
Make2V(j,k,5)||//(5+2+1)*3=24
Make2V(j,k,6)||//(6+2)*1*3=24
Make2V(j,k,7)||//(7+2-1)*3=24
Make2V(j,k,8)||//8*3*(2-1)=24
Make2V(j,k,9)||//(9-2+1)*3=24
Make2V(j,k,10)||//(10-2)*3*1=24
Make2V(j,k,12))//12*(3-2+1)=24
continue;
}
if(j==3)
{
if(Make2V(i,k,3)||Make2V(i,k,4)||Make2V(i,k,5)||Make2V(i,k,6)||Make2V(i,k,7)||Make2V(i,k,8)||Make2V(i,k,9)||Make2V(i,k,10)||Make2V(i,k,12))
continue;
}
if(k==3)
{
if(Make2V(i,j,3)||Make2V(i,j,4)||Make2V(i,j,5)||Make2V(i,j,6)||Make2V(i,j,7)||Make2V(i,j,8)||Make2V(i,j,9)||Make2V(i,j,10)||Make2V(i,j,12))
continue;
}
if(i==5)
{
if(Make2V(j,k,7)||//(5-2)*(7+1)=24
Make2V(j,k,8)||//(5-2)*8*1=24
Make2V(j,k,9)//(5-2)*(9-1)=24
||Make2V(j,k,4)||//4*(5+2-1)=24
Make2V(j,k,3)||//3*(5+2+1)=24
Make2V(j,k,12))//(5-2-1)*12=24
continue;
}
if(j==5)
{
if(Make2V(i,k,7)||Make2V(i,k,8)||Make2V(i,k,9)
||Make2V(i,k,4)||Make2V(i,k,3)||Make2V(i,k,12))
continue;
}
if(k==5)
{
if(Make2V(i,j,7)||Make2V(i,j,8)||Make2V(i,j,9)//5-2==3,3*8
||Make2V(i,j,4)||Make2V(i,j,3)||Make2V(i,j,12))//5-1=4,4*6
continue;
}
if(i==7)
{
if(Make2V(k,j,1)||//(1+7)*(1+2)=24
Make2V(k,j,2)||//(7-1)*(2+2)=24
Make2V(k,j,5)||//(7+5)*2*1=24
Make2V(k,j,6)||//(7+6-1)*2=24
Make2V(k,j,8)||//(7-1)*8/2=24
Make2V(k,j,9)||//9*2+7-1=24
Make2V(k,j,10))//(10+7*2)*1=24
continue;
}
if(j==7)
{
if(Make2V(k,i,1)||Make2V(k,i,2)||Make2V(k,i,5)||Make2V(k,i,6)||Make2V(k,i,8)||Make2V(k,i,9)||Make2V(k,i,10))
continue;
}
if(k==7)
{
if(Make2V(i,j,1)||Make2V(i,j,2)||Make2V(i,j,5)||Make2V(i,j,6)||Make2V(i,j,8)||Make2V(i,j,9)||Make2V(i,j,10))
continue;
}
if(!Make3V(i,j,k,8)//8*(1+2)
&&!Make3V(i,j,k,21)//21+2+1
&&!Make3V(j,k,i,22)//22+2*1
&&!Make3V(k,i,j,23)//23+2-1
&&!Make3V(i,j,k,24)//24*(2-1)
&&!Make3V(i,j,k,27)//27-2-1
&&!Make3V(i+1,j+2,k,24))//this special case is used to filter {5,1,1}
{
result[i%10+(j%10)*10+(k%10)*100]=1;//Use 0 represent 10.
tcount++;
}
}
printf("%d cases\n\n",tcount);
for(i=0;i<1000;i++)
{
if(result[i])
printf("%03d\n",i);
}
return 1;
}

int main()
{
Search_i_j_k_2_1_For24();
}

非常好,程序只输出了8组结果。

{10,10,10}
{1,1,1}
{1,1,2}
{1,1,3}
{1,2,2}
{1,9,10}
{1,9,9}
{5,5,5}
由于我们对选择的顺序做了限制,
如果留下{5,5,5}只能说明所有的数字都是5,那么我们可以用
5+5+5+5+5-5/5+5-5来构造24。

余下的7种情况都没有5说明初始数据中没有5,不然,由于数据中都留有2个以上S1或S4中的数,而通过限制1后总是至少还要留下一个5,就要矛盾了。

而且由于数据中至少都还有两个S1或2两个S4中的数,说明,除了最多有一个3以外,所有的数据都在S1或S4中时,才有可能留下这7批数据。

也就是说,除了这种情况,其他情况已经全部证明。

而对于这种特殊情况,证明就应该比较容易了(因为情况已经不多了),那就待续了。
  • 打赏
  • 举报
回复
Zee 2001-09-21
呵呵,N1越大分支就越多了。
期待中……
  • 打赏
  • 举报
回复
wilddragon 2001-09-21
期待答案
  • 打赏
  • 举报
回复
selfhood 2001-09-21
uo
  • 打赏
  • 举报
回复
wilddragon 2001-09-21
支持一把
  • 打赏
  • 举报
回复
likespringxjy 2001-09-21
gz
  • 打赏
  • 举报
回复
selfhood 2001-09-20
up
  • 打赏
  • 举报
回复
sietlkj 2001-09-20
当n1=5时,则(1)n2=5;有24=5*5-1;故剩余七个数分布在1-5中,则①至少有两数相同;②其余数中有1或能计算出1,则该情况证明完成;
(2)n2=4;有24=5*4+4,即其余7个数计算出4;因4=3+3/3=2+2=1+1+1+1;故该情况成立,证明略;
(3)n2=3;有24=3*(5+3),即其余7个数计算出3;证明情况同(2),略;
(4)n2=2; 有24=2*(5*2+2),即其余7个数计算出2两个2,证明较简单,略;
(5)n2=1;有24=5*(1+1+1+1+1)-1;
当n1=6时,有24=6*4;故其余8个数没有4,否则证明结束;
(1)n2=5;有24=6*(5-1);剩余7个数分布在1,2,3,5中,必有一个1及两相等数,则可计算出24;
(2)n2=3;有24=6*(3+1);剩余7个数求出1且7个数分布在1,2,3中,证明同上述方法;
(3)n2=2;有24=6*2*2;证明略;
(4)n2=1;24=6*(1+1+1+1);
当n1>=7的证明待续...
  • 打赏
  • 举报
回复
sietlkj 2001-09-20
当n1=7时, (1)n9=1;则剩余7个数分布在(1,2,3,4,5,6,7)中:
一、若该7个数中有3,则有24=(7+1)*3,剩余6个分布在1-7中数计算为0即可,分有重复数及无重复数(计算出两1)两种情况证明,证明略;
二、若该7个数中有4,证明同上;
三、剩余7个数中无3和4;即分布为(1,2,5,6,7):
(A)n8=1,则剩余6个数分布在(1,2,5,6,7)中:
一、若该6个数中有2,则24=(7+1)*(2+1),将其余5个分布在(1,2,5,6,7)中的数计算0,证明同上;
二、若6个数中有5,则24=(7-1)*(5-1),证明同上;
三、剩余6个数中无2和5,即分布为(1,6,7):
(a)n7=1,24=(7+1)*(1+1+1),即剩余5个分布在(1,6,7)中的数计算一个1,其余计算0,证明较简单,略;
(b)n7=6,24=(7-1)*(6-1-1),即剩余5个分布在(1,6,7)中的数计算一个1,其余计算0,同上;
(c)n7=7,则24=(7+1)*(1+7/7+7/7)+7-7;
(B)n8=2,则剩余6个数分布在(2,5,6,7)中:
一、若该6个数中有5,则24=(7+1)*(5-2),情况同(a);
二、若该6个数中有6,则24=(7-1)*(6-2),情况同(a);
三、若该6个数中有2,则24=(7-1)*(2+2),情况同(a);
四、该6个数中无2,5,6,则只有7,24=(7-1)*(7-2-7/7)+(7-7)*7;
(C)n8=5,则剩余6个数分布在(5,6,7)中:
则24=(7-1)*(5-1),即剩余6个分布在5,6,7中的数计算一个1,其余计算0,证明同上述情况,略;
(D)n8=6,则剩余6个数分布在(6,7)中:
(a)n7=6,则剩余5个数分布在(6,7)中:
一、n6=6,24=(7-1)+6+6+6,其余4个数求0,证明略;
二、n6=7,则剩余4个数均为7,24=7+7+7+6/6+(7+7)/7*1;
(b)n7=7,则剩余5个数均为7,24=7+7+7+7-6+(7+7)*1/7;
(E)n8=7,24=(7-1)*(7-7/7-7/7-7/7);
(2)n9=2; 则剩余7个数分布在(2,3,4,5,6,7)中:
一、若该7个数中有5,则24=2*(7+5),其余6个在(2,3,4,5,6,7)中的数求0,证明见前面;
二、该7个数中无5,则7个数分布在(2,3,4,6,7)中:
(A)n8=2,则剩余6个数分布在(2,3,4,6,7)中:
一、若该6个数中有4,则24=7*2*2-4,即剩余5个分布在(2,3,4,6,7)中的数计算0,证明见前面;
二、若该6个数中有6,则24=(7+2)*2+6,即剩余5个分布在(2,3,4,6,7)中的数计算0,证明见前面;
三、该6个数中无4,6,则6个数分布在(2,3,7)中:
(a)n7=2,剩余5个数分布在(2,3,7)中:
一、若该5个数中有3,则24=(7-3)*(2+2+2),即剩余4个分布在(2,3,7)中的数计算0,证明略;
二、若该5个数中有7,则24=7*2+(7-2)*2,即剩余4个分布在(2,7)中的数计算0,证明略;
三、该5个数中无3,7,即全部为2,则24=(7-2)*2*2+2+2+(2-2)*2;
(B)n7=3,剩余5个数分布在(3,7)中:
一、若该5个数中有3,则24=7*3+3-2+2,即剩余4个分布在(3,7)中的数计算0,证明略;
二、该5个数中无3,即全部为7,则24=7*3+2+2-7/7+(7-7)*7;
(c)n7=7,剩余5个数全部为7,则24=(7+2)*2+7-7/7+(7-7)*7;
(B)n8=3,则剩余6个数分布在(3,4,6,7)中:
一、若该6个数中有3,则24=(7-2+3)*3,即剩余5个分布在(3,4,6,7)中的数计算0,证明略;
二、若该6个数中有4,则24=(7-3+2)*4,即剩余5个分布在(4,6,7)中的数计算0,证明见前面;
三、若该6个数中有7,则24=7*2+3+7,即剩余5个分布在(6,7)中的数计算0,证明略;
四、该6个数中无3,4,7,则6个数都是6,24=(7-3)*6+2*(6-6)*6*6*6;
(C)n8=4,则剩余6个数分布在(4,6,7)中:
一、若该6个数中有4,则24=(7-4)*2*4,即剩余5个分布在(4,6,7)中的数计算0,证明略;
二、若该6个数中有6,则24=7*4-6+2,即剩余5个分布在(6,7)中的数计算0,证明见前面;
三、该6个数中无4,6,则6个数都是7,24=4*(7-2+7/7)+(7-7)*7*7;
(D)n8=6,则剩余6个数分布在(6,7)中:
一、若该6个数中有6,则24=(7-6+1)*2*6,即剩余5个分布在(6,7)中的数计算一个1和0,证明略;
二、该6个数中无6,则6个数都是7,24=2*(6+7-7/7)+(7-7)*7*7;
(E)n8=6,则剩余6个数都是7,24=2+7+7+7+7/7+(7-7)*7;
(3)n9=3; 则剩余7个数分布在(3,4,5,6,7)中:
一、若该7个数中有3,则24=7*3+3,即剩余6个分布在(3,4,5,6,7)中的数计算0,证明略;
二、若该7个数中有6,则24=(7-3)*6,即剩余6个分布在(4,5,6,7)中的数计算0,证明略;
三、该7个数中无3,6,则6个数分布在(4,5,7)中:
(A)n8=4,则剩余6个数分布在(4,5,7)中:
一、若该6个数中有5,则24=(7-5)*3*4,即剩余5个分布在(4,5,7)中的数计算0,证明略;
二、若该6个数中有7,则24=(7-4)*7+3,即剩余5个分布在(4,7)中的数计算0,证明略;
三、该6个数中无5,7,则剩余6个数都是4,24=7*4-4+(4-4)*3*4*4*4;
(B)n8=5,则剩余6个数分布在(5,7)中:
则24=(7+5)*(3-1),即剩余6个分布在5,7中的数计算一个1,其余计算0,证明同上,略;
(C)n8=7,则剩余6个数都是7,24=(7+7/7)*3+(7-7)*7*7*7;
(4)n9=4; 则剩余7个数分布在(4,5,6,7)中:
一、若该7个数中有4,则24=7*4-4,即剩余6个分布在(4,5,6,7)中的数计算0,证明略;
二、若该7个数中有6,则24=4*6+7*0,即剩余6个分布在(5,6,7)中的数计算0,证明略;
三、该7个数中无3,6,则6个数分布在(5,7)中,则24=(7-1)*4,即剩余7个分布在5,7中的数计算一个1,其余计算0,证明同上,略;
(5)n9=5; 则剩余7个数分布在(5,6,7)中:
(A)n8=5,则剩余6个数分布在(5,6,7)中:
一、若该6个数中有6,则24=5*5-7+6,即剩余5个分布在(5,6,7)中的数计算0,证明略;
二、若该6个数中有7,则24=5*5-7/7,即剩余5个分布在(5,7)中的数计算0,证明略;
三、该6个数中无6,7,则剩余6个数都是5,24=5*5-7+5+5/5+(5-5)*5;
(B)n8=6,则剩余6个数分布在(6,7)中:
则24=5*6-7+1,即剩余6个分布在6,7中的数计算一个1,其余计算0,证明同上,略;
(C)n8=7,则剩余6个数都是7,24=(7+5)*(7/7+7/7)+(7-7)*7;
(6)n9=6; 则剩余7个数分布在(6,7)中:
(A)n8=6,则剩余6个数分布在(6,7)中:
(a)n7=6,剩余5个数分布在(6,7)中,则24=7+6+6+6-1,即剩余5个分布在6,7中的数计算一个1,其余计算0,证明同上,略;
(b)n7=7,则剩余6个数都是7,24=(6-(7+7)/7)*6+(7-7)*7*7;
(B)n8=7,则剩余6个数都是7,24=7+7+7+6*7/(7+7)+7-7;
(7)n9=7;24=7+7+7+7/7+7/7+7/7;
当n1>=8的证明待续...
  • 打赏
  • 举报
回复
加载更多回复(22)
发帖
数据结构与算法

3.2w+

社区成员

数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
帖子事件
创建了帖子
2001-09-11 01:26
社区公告
暂无公告