数学建模社区-数学中国

标题: Mathematica 24点程序! [打印本页]

作者: cjilyy    时间: 2011-10-14 09:45
标题: Mathematica 24点程序!
f[x1_, s1_, x2_, s2_, x3_, s3_, x4_] := ' ~8 @- M# {  p& i" d' D0 d
Module[{result, i},
6 O! \2 _, d4 r, |" g  result = {HoldForm[(x1~s1~x2)~s2~(x3~s3~x4)],
+ A; C8 s* v0 n+ G5 Z5 T    HoldForm[x1~s1~(x2~s2~x3~s3~x4)],
/ G! R1 C0 {7 j4 W    HoldForm[x1~s1~x2~s2~(x3~s3~x4)],
% r+ u2 ?2 l$ ?% N, y    HoldForm[(x1~s1~x2~s2~x3)~s3~x4],
: W: V! M  z6 T1 V/ l- M* ]" C    HoldForm[x1~s1~(x2~s2~x3)~s3~x4], ; G. {9 O& i4 _5 `( _2 B6 D
    HoldForm[(x1~s1~(x2~s2~x3))~s3~x4],
3 {: ^. M+ |; s2 f7 m" L, u    HoldForm[x1~s1~(x2~s2~(x3~s3~x4))]};6 X5 d! z& j: ^& o% A  r& M
  result = Union[result];
: G4 C1 l' ]4 {. T4 ^( H  W  For[i = 1, i <= Length[result], i++, . H( t/ g) x& G9 s. d8 h# n
   If[ReleaseHold[result[[i]]] == 24, Print[result[[i]], "=24"];
- P7 Q" h$ h9 ^* Z# s( Z     (*Print[TreeForm[result[[i]],DirectedEdges->True]]*);];];]# I; E) _7 s9 L) T, \+ l
- m% u% [: _% g3 `7 t* c$ S
fs[x1_, x2_, x3_, x4_] := ) T1 C! x3 N0 f2 J  W+ ?. T' e! P0 p3 u: T
Module[{result, s, sym, num, i, j}, Off[Divide::infy];
( B/ v! j( Y# e' m0 f/ L. B) L  Off[Part::partw];* M" P3 ~  r: {. a6 I$ e6 V
  Off[Divide::indet];6 p1 j) v& c2 r* h  X# |
  s = {Plus, Subtract, Times, Divide};/ G2 ~1 V* E4 D2 [5 X5 d# u+ v
  sym = Flatten[+ n$ t0 n4 b5 O6 [) Y% [" P  v- Q. u
    Table[{s[[i]], s[[j]], s[[k]]}, {i, 4}, {j, 4}, {k, 4}], 2];
5 d5 y* P3 ~& ^9 M  sym = Union[sym];
+ p$ h! @" S# e' I, c8 h  num = Permutations[{x1, x2, x3, x4}];
& J/ _* x) S% O; k. }( \$ H+ V  Do[f[num[[i, 1]], sym[[j, 1]], num[[i, 2]], sym[[j, 2]],
% k6 c' s: }: g% o" ^3 k    num[[i, 3]], sym[[j, 3]], num[[i, 4]]], {i, Length[num]}, {j, + _( U9 \* m6 Z! j
    Length[sym]}]]; c, O. Z) n; |# o1 h, q7 L  g
5 Q; ?  J' V& w" {: K0 O  z
fs[3, 3, 8, 8]




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5