复原算式
■ ■ ■× ■ ■ ■
■ ■ ■
■ ■ ■
■ ■ ■
■ ■ ■ ■ ■
上面算式中,每个“■”代表1个数字,共20个“■”代表20个数字。仅知 0~9 这十个数字在上面算式中的出现每个都不多于2次。请还原此算式。
由于三位数样本数不多,
虽然用计算机很快可以遍历搜索到,
但我对结果依然很好奇,很期待。。。 本帖最后由 云梦 于 2013-8-14 11:30 编辑
是否有解? 共20个“■”代表20个数字。仅知 0~9 这十个数字在上面算式中的出现每个都不多于2次
也就是每个数 出现2次了 找出来 有且仅有一组解:
179×224
{179, 224, 358, 358, 716, 40096}
1 7 9
× 2 2 4
7 1 6
3 5 8
3 5 8
4 0 0 9 6
179*224=40096 Clear["Global`*"];(*Clear all variables*)
Do[
np1=(IntegerDigits@n)[];(*n的百位*)
np2=(IntegerDigits@n)[];(*n的十位*)
np3=(IntegerDigits@n)[];(*n的个位*)
n1=m*np1;(*百位相乘结果*)
n2=m*np2;(*十位相乘结果*)
n3=m*np3;(*个位相乘结果*)
mn=m*n;(*两个数的乘积*)
dm=IntegerDigits@m;(*m的各位数字*)
dn=IntegerDigits@n;(*n的各位数字*)
dnp1=IntegerDigits@n1;
dnp2=IntegerDigits@n2;
dnp3=IntegerDigits@n3;
dmn=IntegerDigits@mn;
abc=Sort@Join;(*合并各个数的各位,然后排序*)
(*判定,然后打印出结果*)
If[
n1>=100&&n1<1000&&
n2>=100&&n2<1000&&
n3>=100&&n3<1000&&
mn>=10000&&mn<100000&&
abc=={0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9},
Print[{m,n,mn}]
],
{m,100,999},{n,100,999}
]
这是过程! 好久不用mathematica写代码,居然短短的代码会出现好几个错误,真是不可思议! 还是楼主的式子,假如0-9 十个数字都用到了,问其中某一个非0的数字最多可以出现多少次,并给出最多情况下的式子
这个有谁愿意试试
比如:
148×343
{148, 343, 444, 592, 444, 50764}
1 4 8
× 3 4 3
4 4 4
5 9 2
4 4 4
5 0 7 6 4
呵呵,看来是wayne第一个给出结果,但是我是第一个给出过程的人!
这题很有意思!适合编程序!
页:
[1]
2