找回密码
 欢迎注册
楼主: shshsh_0510

[求助] 小学奥数求助

[复制链接]
发表于 2012-5-3 17:54:26 | 显示全部楼层
对这个题目有点思考,不全面。
首先这9个数的和是45,要把这9个数合成三个我们想要的数,记AB的和未x,CDE的和为y,FGHI的和为z,根据同余关系,只有以下两种情况,
1. x=1(mod 3),y=1(mod 3),z=1(mod 3)
2. x=0(mod 3),y=0(mod 3),z=0(mod 9)
对于第二种情况,z只有两种取值,z=18,或者z=27.也即FGHI的各位数之和为18或者27.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-6-18 13:01:10 | 显示全部楼层
  1. (*问题:小学奥数求助*)
  2. (*问题地址:http://bbs.emath.ac.cn/thread-4262-1-1.html*)
  3. (*代码参考了:http://bbs.emath.ac.cn/viewthread.php?tid=4262&page=1&fromuid=865#pid42879*)
  4. (*利用穷举法解决问题*)
  5. Clear["Global`*"];(*Clear all variables*)
  6. Do[ c=a*b;(*两个整数的乘积*)
  7.     U=Union[IntegerDigits@a,IntegerDigits@b,IntegerDigits@c];(*求出a\b\c三个整数的各个位数,然后取并集*)
  8.     If[ U=={1,2,3,4,5,6,7,8,9}&&c<9876&&c>1234,(*要求并集之后为{1,2,3,4,5,6,7,8,9},并且c是四位数*)
  9.         Print[{a,b,c}]],(*如果达到上面的两个了要求,就打印出三个整数*)
  10.     {a,12,98},(*第一个整数*)
  11.     {b,123,987}](*第二个整数*)
复制代码
求解结果:
{12,483,5796}

{18,297,5346}

{27,198,5346}

{28,157,4396}

{39,186,7254}

{42,138,5796}

{48,159,7632}
QQ截图20120618130403.jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-6-18 13:50:53 | 显示全部楼层
  1. (*问题:小学奥数求助*)
  2. (*问题地址:http://bbs.emath.ac.cn/thread-4262-1-1.html*)
  3. (*此代码参考了wayne:http://bbs.emath.ac.cn/viewthread.php?tid=4262&page=2&fromuid=865#pid42880*)
  4. (*利用穷举法解决问题,使用排列穷举的办法*)
  5. Clear["Global`*"];(*Clear all variables*)
  6. d=Range[9];(*生成{1,2,3,4,5,6,7,8,9}*)
  7. (*建立子函数,对于满足条件的结果返回1,不满足条件的结果返回0*)
  8. subFun[a0_]:=Module[{a=a0[[1;;2]],(*第1个整数的各个数字*)
  9.                      b=a0[[3;;5]],(*第2个整数的各个数字*)
  10.                      c,(*局部变量*)
  11.                      out},(*局部变量*)
  12.                      (*由第1个整数与第2个整数得到第3个整数的各位数*)
  13.                      c=IntegerDigits[FromDigits[a]*FromDigits[b]];
  14.                      (*注意d是全局变量,这并不是一个好的编程习惯*)
  15.                      If[Sort@Flatten[{a,b,c}]==d,(*a\b\c三个整数各位数组成一个表,并排序*)
  16.                         out=1,(*如果满足条件out=1*)
  17.                         out=0];(*如果不满足out=0*)
  18.                      out];(*输出最后的结果*)
  19. (*根据子函数,选择所有满足条件的结果*)
  20. Select[Permutations[d, {5}],subFun[#]==1&]
复制代码
注意下面的代码与上面的代码的结果的区别
  1. (*问题:小学奥数求助*)
  2. (*问题地址:http://bbs.emath.ac.cn/thread-4262-1-1.html*)
  3. (*此代码参考了wayne:http://bbs.emath.ac.cn/viewthread.php?tid=4262&page=2&fromuid=865#pid42880*)
  4. (*利用穷举法解决问题,使用排列穷举的办法*)
  5. Clear["Global`*"];(*Clear all variables*)
  6. d=Range[9];(*生成{1,2,3,4,5,6,7,8,9}*)
  7. subFun[a0_]:=Module[{a=a0[[1;;2]],(*第1个整数的各个数字*)
  8.                      b=a0[[3;;5]],(*第2个整数的各个数字*)
  9.                      c,(*局部变量*)
  10.                      out},(*局部变量*)
  11.                      (*由第1个整数与第2个整数得到第3个整数的各位数*)
  12.                      c=IntegerDigits[FromDigits[a]*FromDigits[b]];
  13.                      (*注意d是全局变量,这并不是一个好的编程习惯*)
  14.                      If[Union[a,b,c]==d,(*a\b\c三个整数各位数组成一个表,并排序*)
  15.                         out=1,(*如果满足条件out=1*)
  16.                         out=0];(*如果不满足out=0*)
  17.                      out];(*输出最后的结果*)
  18. (*根据子函数,选择所有满足条件的结果*)
  19. Select[Permutations[d, {5}],subFun[#]==1&]
复制代码
wayne.jpg
wayne2.jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-6-18 13:57:22 | 显示全部楼层
最笨的办法就是最好的办法,穷举就是最好的办法!!!!!!!!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-6-20 09:21:15 | 显示全部楼层
我把别人的代码拆成很多行,你说这是不是简单问题复杂化呢?可是我觉得是把简单的表达式弄得更容易明白!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-6-20 09:48:50 | 显示全部楼层
45# mathematica


自言自语,自得其乐,挺可爱。。。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-4 20:08:34 | 显示全部楼层
41# rayfekeeper


AB*CDE=FGHI

先考虑首位数,很容易知道F最小是4,此时A,C为1或2.
再考虑末尾数,末尾数为3,5,6,7,8,9
只有
1      3*6=?8
2      3*9=?7
3      7*8=?6
4      7*9=?3

若为第1,2种情况,那么A=1,而13*298=3874<4000,所以,E=3,只有16*253和19*283两种情况,都不符合要求

所以只有第3,4中情况可能。只有AB=18,或19或27或28满足要求。
AB=18,CDE=2D7,FGHI=4GH6,只有D=3,D=9两种情况
AB=19,CDE=2D7,FGHI=4GH3,D不会满足求余条件
AB=27,CDE=1D9,FGHI=4GH3,只有D=5,D=8两种情况
AB=28,CDE=1D7,FGHI=4GH6,只有D=5一种情况

所以,F=4时只有28*157=4396

搞了一个小时。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-5 08:43:05 | 显示全部楼层
41# rayfekeeper


AB*CDE=FGHI

先考虑首位数,很容易知道F最小是4,此时A,C为1或2.
再考虑末尾数,末尾数为3,5,6,7,8,9
只有
1      3*6=?8
2      3*9=?7
3      7*8=?6
4      7*9=?3

若为 ...
nnd 发表于 2012-7-4 20:08

有毅力,不过还不是穷举法吗?
那为什么不直接用计算机呢?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-5 09:24:22 | 显示全部楼层
我的应该是正解。

出一个用计算机算的题目。

1. x是一个8位的正整数
2. x刚好有四个不同的质因数,且四个质因数的个位与个位互不相同,十位(如果有)与十位互不相同,百位....
3. 不能告诉你x的个位数,因为告诉你了你就知道了四个质因数的个位数。呵呵。
4.在满足上述条件的数中,x和四个质因数之和的比值最大。

请问x是多少?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-7-5 10:54:37 | 显示全部楼层
x肯定不是偶数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-18 10:38 , Processed in 0.059580 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表