matlab 发表于 2012-6-23 22:00:50

求AB*CDE=FGHIJ,各个字母代表0到9的其中的一个

不同的字母表示不同的数字,每个字母是0到9的其中的一个数字,求这九个字母代表的数字!

mathematica 发表于 2012-6-25 09:31:28

(*利用穷举法解决问题*)
(*网址:http://bbs.emath.ac.cn/redirect.php?tid=4410&goto=lastpost#lastpost*)
Clear["Global`*"];(*Clear all variables*)
Do[ c=a*b;(*两个整数的乘积*)
    U=Union;(*求出a\b\c三个整数的各个位数,然后取并集*)
    If[Length@U==10,(*如果取并集以后是10个数字*)
      Print[{a,b,c}]],(*如果达到上面的要求,就打印出三个整数*)
    {a,12,98},(*第一个整数*)
    {b,123,987}](*第二个整数*)


{27,594,16038}
{36,495,17820}
{39,402,15678}
{45,396,17820}
{46,715,32890}
{52,367,19084}
{54,297,16038}
{63,927,58401}
{78,345,26910}

wayne 发表于 2012-6-25 11:11:56

2# mathematica

运行 Attributes
你会发现 IntegerDigits函数有Listable 的属性。
所以,代码U=Union;可以改写为:U=Union@Flatten@IntegerDigits[{a,b,a*b}];

hujunhua 发表于 2012-6-25 12:00:31

我昨天人工解了一下,不过没动笔,在床上冥想的,觉得可行。

wayne 发表于 2012-6-25 12:29:50

4# hujunhua
如果反复的利用同余的性质,兴许不麻烦。
0+1+2+。。。+9 =45
按3的剩余类,三个数被3除余数 都相等。

manthanein 发表于 2017-1-23 16:18:35

https://oeis.org/A195814
https://oeis.org/A253172
https://oeis.org/A253173
页: [1]
查看完整版本: 求AB*CDE=FGHIJ,各个字母代表0到9的其中的一个