mathematica 发表于 2012-6-20 09:50:33

(*紫罗兰算式(数学代数方面的)*)
(*http://bbs.emath.ac.cn/viewthread.php?tid=2606&highlight=*)
Clear["Global`*"];(*Clear all variables*)
ran=Range;(*产生序列0\1\2\3\4\5\6\7\8\9*)
p=Permutations;(*所有可能的排列都列举出来*)
(*定义子函数,如果符合要求,则结果返回是1,如果不符合,则返回0*)
subFunA:=Module[{
                        c=a0[],
                        l=a0[],
                        o=a0[],
                        v=a0[],
                        e=a0[],
                        r=a0[],
                        u=a0[],
                        s=a0[],
                        i=a0[],
                        t=a0[],
                        clover,crocus,violet,out},
      (*形成三个整数*)
      clover=c*10^5+l*10^4+o*10^3+v*10^2+e*10^1+r;
      crocus=c*10^5+r*10^4+o*10^3+c*10^2+u*10^1+s;
      violet=v*10^5+i*10^4+o*10^3+l*10^2+e*10^1+t;
      If;
      out
];
(*依据子函数选择符合要求的*)
Select==1&]

理论上这个代码能解决这个问题,但是实际上解决不了,因为需要的内存太大了!

上面的代码使用mathematica软件写的

mathematica 发表于 2012-6-20 11:00:45

wayne,你能写一个mathematica软件求解的代码吗?当然不允许使用
多重循环,我写的这个在内存上是不可行的,虽然理论上是可以的

mathematica 发表于 2018-3-29 21:19:16

mathematica 发表于 2012-6-20 09:50
理论上这个代码能解决这个问题,但是实际上解决不了,因为需要的内存太大了!

上面的代码使用mathematica软 ...

(*紫罗兰算式(数学代数方面的)*)
Clear["Global`*"];(*Clear all variables*)
data=Permutations,{10}];(*形成所有的排列*)
fun:=Module[{
c=list[],
l=list[],
o=list[],
v=list[],
e=list[],
r=list[],
u=list[],
s=list[],
i=list[],
t=list[]
},
(*形成三个数*)
CLOVER=Dot[{c,l,o,v,e,r},{10^5,10^4,10^3,10^2,10^1,1}];
CROCUS=Dot[{c,r,o,c,u,s},{10^5,10^4,10^3,10^2,10^1,1}];
VIOLET=Dot[{v,i,o,l,e,t},{10^5,10^4,10^3,10^2,10^1,1}];
(*如果积满足要求,那么就是1,否则就就是0*)
If,out=0];
out
]
(*大海捞针,选出符合条件的数*)
Select==1&]


求解结果
{280516,260297,540813}
{{2, 8, 0, 5, 1, 6, 9, 7, 4, 3}}

mathematica进步了,现在能把这个问题求解出来了

王守恩 发表于 2018-3-31 09:46:30

\(O,U只能是0,9计2种可能,C有1,2,3,4计4种可能,V有进位不进位计2种可能。把这2×4×2=16种可能一一罗列出来。\)
\(1,O=0,U=9,C=1,V=2,\Longrightarrow L=4 ,R=3,I=7,   剩5,6,8,不能满足3+S=T+10。\)
\(2,O=0,U=9,C=1,V=3,\Longrightarrow L=5 ,R=7,I=2,   剩4,6,8,不能满足7+S=T+10。\)
\(3,O=0,U=9,C=2,V=4,\Longrightarrow L=7 ,R=1,I=8,   剩3,5,6,不能满足1+S=T+10。\)
\(4,O=0,U=9,C=2,V=5,\Longrightarrow L=8 ,R=6,I=4,   剩1,3,7,满足6+7=3+10。\)
\(5,O=0,U=9,C=3,V=6,3+6+1=10,而千位上是不让进位上来的。\)
\(6,O=0,U=9,C=3,V=7,3+7+1=11,而千位上是不让进位上来的。\)
\(7,O=0,U=9,C=4,V=8,4+8+1=13,而千位上是不让进位上来的。\)
\(8,O=0,U=9,C=4,V=9,4+9+1=14,而千位上是不让进位上来的。\)
\(9,O=9,U=0,C=1,V=2,1+2=3,而千位上是必须有进位上来的。\)
\(10,O=9,U=0,C=1,V=3,1+3=4,而千位上是必须有进位上来的。\)
\(11,O=9,U=0,C=2,V=4,2+4=6,而千位上是必须有进位上来的。\)
\(12,O=9,U=0,C=2,V=5,2+5=7,而千位上是必须有进位上来的。\)
\(13,O=9,U=0,C=3,V=6,3+6=9(重复)。\)
\(14,O=9,U=0,C=3,V=7,3+7=0(重复)。\)
\(15,O=9,U=0,C=4,V=8,\Longrightarrow L=2 ,R=3,I=6,   剩1,5,7,不能满足3+S=T+10。\)
\(16,O=9,U=0,C=4,V=9(重复)。\)

补充内容 (2019-1-30 20:14):
只有第 4 种可能满足条件:O=0,U=9,C=2,V=5,L=8,R=6,I=4,1=E,3=T,7=S。其他 15 种都不行。也就是说,答案只有 1 个:280516+260297=540813。

manthanein 发表于 2019-1-30 19:14:54

本帖最后由 manthanein 于 2019-1-30 19:53 编辑

\(3c+2r+s \equiv i+t \pmod 9 \)
\(r+s \equiv t \pmod {10}\)

\(2c \le v \le 2c+1\)
\(l+r-10=i\)或\(l+r-9=i\)或\(l+r=i\)或\(l+r+1=i\)
\(v+c-10=l\)或\(v+c-9=l\)或\(v+c=l\)或\(v+c+1=l\)

manthanein 发表于 2019-1-30 19:24:34

本帖最后由 manthanein 于 2019-1-30 19:55 编辑

下面必有一式成立:
\(i=v+c+r-20\)
\(i=v+c+r-19\)
\(i+v+c+r-10\)
\(i=v+c+r-18\)
\(i=v+c+r-9\)
\(i=v+c+r\)
\(i=v+c+r-8\)
\(i=v+c+r+1\)
\(i=v+c+r+2\)

manthanein 发表于 2019-1-30 19:26:05

本帖最后由 manthanein 于 2019-1-30 19:56 编辑

\(v+c+r \equiv i \pmod 9\)

\(v+c+r \equiv i+1 \pmod 9\)

\(v+c+r \equiv i+2 \pmod 9\)

\(v+c+r \equiv i-1 \pmod 9\)

\(v+c+r \equiv i-2 \pmod 9\)

manthanein 发表于 2019-1-30 19:27:48

本帖最后由 manthanein 于 2019-1-30 19:57 编辑

\(3c+r \equiv i-3 \pmod 9\)

\(3c+r \equiv i-2 \pmod 9\)

\(3c+r \equiv i-1 \pmod 9\)

\(3c+r \equiv i \pmod 9\)

\(3c+r \equiv i+1 \pmod 9\)

\(3c+r \equiv i+2 \pmod 9\)

manthanein 发表于 2019-1-30 19:33:26

本帖最后由 manthanein 于 2019-1-30 19:57 编辑

若\(3c+r-k_1 \equiv i \pmod 9\),\(r+s-k_2 \equiv t \pmod 9\),那么:
\(3c+2r+s \equiv 3c+r-k_1+r+s-k_2 \pmod 9\)
\(k_1+k_2 \equiv 0 \pmod 9\)

而\(k_1\)取值范围为-3,-2,-1,0,1,2
\(k_2\)取值范围为0,1

manthanein 发表于 2019-1-30 19:43:30

所以:\(k_1=k_2=0\)或\(k_1=-1\),\(k_2=1\)
页: 1 2 3 4 5 [6] 7
查看完整版本: 紫罗兰算式(数学代数方面的)