数学研发论坛

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

[提问] 紫罗兰算式(数学代数方面的)

[复制链接]
 楼主| 发表于 2012-6-20 09:50:33 | 显示全部楼层
  1. (*紫罗兰算式(数学代数方面的)*)
  2. (*/viewthread.php?tid=2606&highlight=*)
  3. Clear["Global`*"];(*Clear all variables*)
  4. ran=Range[0,9];(*产生序列0\1\2\3\4\5\6\7\8\9*)
  5. p=Permutations[ran,{10}];(*所有可能的排列都列举出来*)
  6. (*定义子函数,如果符合要求,则结果返回是1,如果不符合,则返回0*)
  7. subFunA[a0_]:=Module[{
  8.                         c=a0[[1]],
  9.                         l=a0[[2]],
  10.                         o=a0[[3]],
  11.                         v=a0[[4]],
  12.                         e=a0[[5]],
  13.                         r=a0[[6]],
  14.                         u=a0[[7]],
  15.                         s=a0[[8]],
  16.                         i=a0[[9]],
  17.                         t=a0[[10]],
  18.                         clover,crocus,violet,out},
  19.         (*形成三个整数*)
  20.         clover=c*10^5+l*10^4+o*10^3+v*10^2+e*10^1+r;
  21.         crocus=c*10^5+r*10^4+o*10^3+c*10^2+u*10^1+s;
  22.         violet=v*10^5+i*10^4+o*10^3+l*10^2+e*10^1+t;
  23.         If[clover+crocus-violet==0,out=1,out=0];
  24.         out
  25. ];
  26. (*依据子函数选择符合要求的*)
  27. Select[p,subFun[#]==1&]

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

上面的代码使用mathematica软件写的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-6-20 11:00:45 | 显示全部楼层
wayne,你能写一个mathematica软件求解的代码吗?当然不允许使用
多重循环,我写的这个在内存上是不可行的,虽然理论上是可以的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2018-3-29 21:19:16 | 显示全部楼层
mathematica 发表于 2012-6-20 09:50
理论上这个代码能解决这个问题,但是实际上解决不了,因为需要的内存太大了!

上面的代码使用mathematica软 ...
  1. (*紫罗兰算式(数学代数方面的)*)
  2. Clear["Global`*"];(*Clear all variables*)
  3. data=Permutations[Range[0,9],{10}];(*形成所有的排列*)
  4. fun[list_]:=Module[{
  5. c=list[[1]],
  6. l=list[[2]],
  7. o=list[[3]],
  8. v=list[[4]],
  9. e=list[[5]],
  10. r=list[[6]],
  11. u=list[[7]],
  12. s=list[[8]],
  13. i=list[[9]],
  14. t=list[[10]]
  15. },
  16. (*形成三个数*)
  17. CLOVER=Dot[{c,l,o,v,e,r},{10^5,10^4,10^3,10^2,10^1,1}];
  18. CROCUS=Dot[{c,r,o,c,u,s},{10^5,10^4,10^3,10^2,10^1,1}];
  19. VIOLET=Dot[{v,i,o,l,e,t},{10^5,10^4,10^3,10^2,10^1,1}];
  20. (*如果积满足要求,那么就是1,否则就就是0*)
  21. If[CLOVER+CROCUS==VIOLET,out=1;Print[{CLOVER,CROCUS,VIOLET}],out=0];
  22. out
  23. ]
  24. (*大海捞针,选出符合条件的数*)
  25. Select[data,fun[#]==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。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-1-30 19:43:30 | 显示全部楼层
所以:\(k_1=k_2=0\)或\(k_1=-1\),\(k_2=1\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2019-4-25 06:32 , Processed in 0.054081 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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