数学建模社区-数学中国
标题:
Mathematica 24点程序!
[打印本页]
作者:
cjilyy
时间:
2011-10-14 09:45
标题:
Mathematica 24点程序!
f[x1_, s1_, x2_, s2_, x3_, s3_, x4_] :=
+ @5 c( y* k+ }3 M& v
Module[{result, i},
& X6 x! H0 z8 A. C7 V
result = {HoldForm[(x1~s1~x2)~s2~(x3~s3~x4)],
) K7 q" H2 A8 z$ Y# Y
HoldForm[x1~s1~(x2~s2~x3~s3~x4)],
1 S8 n/ r/ c9 H( f1 i; J z- y
HoldForm[x1~s1~x2~s2~(x3~s3~x4)],
3 p E8 I$ y3 I3 `6 X+ U
HoldForm[(x1~s1~x2~s2~x3)~s3~x4],
0 _: G2 Q/ j4 @, d
HoldForm[x1~s1~(x2~s2~x3)~s3~x4],
% R3 @# ?8 n( j
HoldForm[(x1~s1~(x2~s2~x3))~s3~x4],
% |7 y9 @, M! Q; h' b
HoldForm[x1~s1~(x2~s2~(x3~s3~x4))]};
3 l, ?6 Q& c* V1 q6 Z1 `* A+ D
result = Union[result];
0 K: }/ }& ]$ n( A% }* \- c
For[i = 1, i <= Length[result], i++,
8 w2 R* G$ I7 e8 U/ z! }
If[ReleaseHold[result[[i]]] == 24, Print[result[[i]], "=24"];
$ f( L1 x, Y1 p2 G
(*Print[TreeForm[result[[i]],DirectedEdges->True]]*);];];]
# @3 T" _6 Q: \- A& z
( e- n& s' C& z' S
fs[x1_, x2_, x3_, x4_] :=
! e4 I3 U; T- K _2 c; c7 b
Module[{result, s, sym, num, i, j}, Off[Divide::infy];
1 B- t/ ]% r2 _/ S t/ q; ~9 k
Off[Part::partw];
+ I/ @5 Z9 O- d7 O
Off[Divide::indet];
2 j; S7 B1 f. ?. p; R+ T- V* s9 ~, I
s = {Plus, Subtract, Times, Divide};
# ?( b; R$ z9 F; C+ N7 e# P _
sym = Flatten[
5 k( t; z% l& i4 L3 `2 q6 Q
Table[{s[[i]], s[[j]], s[[k]]}, {i, 4}, {j, 4}, {k, 4}], 2];
6 Q; F" I$ x5 e* a B0 j& Y* R. D
sym = Union[sym];
7 j C! M& w% s" V6 o
num = Permutations[{x1, x2, x3, x4}];
; u1 L& O! b1 q3 C, j: S3 x1 e" m
Do[f[num[[i, 1]], sym[[j, 1]], num[[i, 2]], sym[[j, 2]],
. T* u1 E" m# c0 G5 H! j
num[[i, 3]], sym[[j, 3]], num[[i, 4]]], {i, Length[num]}, {j,
' B7 W+ U0 D% n m5 j d, t
Length[sym]}]]
( T' m _& G$ D" [
/ e$ @1 n! S1 s; K$ C9 `
fs[3, 3, 8, 8]
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5