rayfekeeper 发表于 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.

mathematica 发表于 2012-6-18 13:01:10

(*问题:小学奥数求助*)
(*问题地址:http://bbs.emath.ac.cn/thread-4262-1-1.html*)
(*代码参考了:http://bbs.emath.ac.cn/viewthread.php?tid=4262&page=1&fromuid=865#pid42879*)
(*利用穷举法解决问题*)
Clear["Global`*"];(*Clear all variables*)
Do[ c=a*b;(*两个整数的乘积*)
    U=Union;(*求出a\b\c三个整数的各个位数,然后取并集*)
    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是四位数*)
      Print[{a,b,c}]],(*如果达到上面的两个了要求,就打印出三个整数*)
    {a,12,98},(*第一个整数*)
    {b,123,987}](*第二个整数*)
求解结果:
{12,483,5796}

{18,297,5346}

{27,198,5346}

{28,157,4396}

{39,186,7254}

{42,138,5796}

{48,159,7632}

mathematica 发表于 2012-6-18 13:50:53

(*问题:小学奥数求助*)
(*问题地址:http://bbs.emath.ac.cn/thread-4262-1-1.html*)
(*此代码参考了wayne:http://bbs.emath.ac.cn/viewthread.php?tid=4262&page=2&fromuid=865#pid42880*)
(*利用穷举法解决问题,使用排列穷举的办法*)
Clear["Global`*"];(*Clear all variables*)
d=Range;(*生成{1,2,3,4,5,6,7,8,9}*)
(*建立子函数,对于满足条件的结果返回1,不满足条件的结果返回0*)
subFun:=Module[{a=a0[],(*第1个整数的各个数字*)
                     b=a0[],(*第2个整数的各个数字*)
                     c,(*局部变量*)
                     out},(*局部变量*)
                     (*由第1个整数与第2个整数得到第3个整数的各位数*)
                     c=IntegerDigits*FromDigits];
                     (*注意d是全局变量,这并不是一个好的编程习惯*)
                     If==d,(*a\b\c三个整数各位数组成一个表,并排序*)
                        out=1,(*如果满足条件out=1*)
                        out=0];(*如果不满足out=0*)
                     out];(*输出最后的结果*)
(*根据子函数,选择所有满足条件的结果*)
Select,subFun[#]==1&]
注意下面的代码与上面的代码的结果的区别(*问题:小学奥数求助*)
(*问题地址:http://bbs.emath.ac.cn/thread-4262-1-1.html*)
(*此代码参考了wayne:http://bbs.emath.ac.cn/viewthread.php?tid=4262&page=2&fromuid=865#pid42880*)
(*利用穷举法解决问题,使用排列穷举的办法*)
Clear["Global`*"];(*Clear all variables*)
d=Range;(*生成{1,2,3,4,5,6,7,8,9}*)
subFun:=Module[{a=a0[],(*第1个整数的各个数字*)
                     b=a0[],(*第2个整数的各个数字*)
                     c,(*局部变量*)
                     out},(*局部变量*)
                     (*由第1个整数与第2个整数得到第3个整数的各位数*)
                     c=IntegerDigits*FromDigits];
                     (*注意d是全局变量,这并不是一个好的编程习惯*)
                     If==d,(*a\b\c三个整数各位数组成一个表,并排序*)
                        out=1,(*如果满足条件out=1*)
                        out=0];(*如果不满足out=0*)
                     out];(*输出最后的结果*)
(*根据子函数,选择所有满足条件的结果*)
Select,subFun[#]==1&]

mathematica 发表于 2012-6-18 13:57:22

最笨的办法就是最好的办法,穷举就是最好的办法!!!!!!!!!!

mathematica 发表于 2012-6-20 09:21:15

我把别人的代码拆成很多行,你说这是不是简单问题复杂化呢?可是我觉得是把简单的表达式弄得更容易明白!!!

plp626 发表于 2012-6-20 09:48:50

45# mathematica


自言自语,自得其乐,挺可爱。。。

nnd 发表于 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

搞了一个小时。

mathematica 发表于 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 http://bbs.emath.ac.cn/images/common/back.gif
有毅力,不过还不是穷举法吗?
那为什么不直接用计算机呢?

nnd 发表于 2012-7-5 09:24:22

我的应该是正解。

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

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

请问x是多少?

mathematica 发表于 2012-7-5 10:54:37

x肯定不是偶数
页: 1 2 3 4 [5] 6 7
查看完整版本: 小学奥数求助