数学建模社区-数学中国
标题:
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