数学建模社区-数学中国
标题:
Mathematica 24点程序!
[打印本页]
作者:
cjilyy
时间:
2011-10-14 09:45
标题:
Mathematica 24点程序!
f[x1_, s1_, x2_, s2_, x3_, s3_, x4_] :=
8 o- Q6 P+ ?+ L8 T$ |
Module[{result, i},
2 }0 {; ~$ r6 [, W* e9 E
result = {HoldForm[(x1~s1~x2)~s2~(x3~s3~x4)],
- ?' g6 n3 C0 x& z8 t# V
HoldForm[x1~s1~(x2~s2~x3~s3~x4)],
" D) v9 W: I1 u; N, p; a& |2 V
HoldForm[x1~s1~x2~s2~(x3~s3~x4)],
7 X0 D* H, f2 \) s8 l2 c; U2 s
HoldForm[(x1~s1~x2~s2~x3)~s3~x4],
/ E' P/ G9 {8 b( P' J
HoldForm[x1~s1~(x2~s2~x3)~s3~x4],
W3 }7 G+ y4 K+ f2 A
HoldForm[(x1~s1~(x2~s2~x3))~s3~x4],
2 O0 d& F; O# W0 K# a
HoldForm[x1~s1~(x2~s2~(x3~s3~x4))]};
. Z# b0 w( C$ [7 s2 Q+ [: J7 }! n
result = Union[result];
: v0 i. S6 d# n- l Y" g- v$ H
For[i = 1, i <= Length[result], i++,
# J. \+ M% J# L8 a# S
If[ReleaseHold[result[[i]]] == 24, Print[result[[i]], "=24"];
# c* ]/ U# z8 n; k
(*Print[TreeForm[result[[i]],DirectedEdges->True]]*);];];]
1 f2 W$ Q$ q# T) N; r1 d! n
! T+ f$ S& U. V3 K
fs[x1_, x2_, x3_, x4_] :=
/ |. s' k4 j# l% b( b) n$ G0 [
Module[{result, s, sym, num, i, j}, Off[Divide::infy];
0 i5 |' r, A2 E
Off[Part::partw];
: @( @4 B# a6 R! h* D$ d. o; v
Off[Divide::indet];
- D6 n4 M4 p* X% m
s = {Plus, Subtract, Times, Divide};
! i8 x4 S( @# m. H. o
sym = Flatten[
: ?! Z- t; }; o, |
Table[{s[[i]], s[[j]], s[[k]]}, {i, 4}, {j, 4}, {k, 4}], 2];
* t8 p$ c2 o0 x" m" A% q1 d
sym = Union[sym];
5 M5 e2 L( C" ]
num = Permutations[{x1, x2, x3, x4}];
5 s6 M$ m) E! K$ c4 Q/ H/ m$ c
Do[f[num[[i, 1]], sym[[j, 1]], num[[i, 2]], sym[[j, 2]],
) T9 c9 ^ f: l C8 }) J
num[[i, 3]], sym[[j, 3]], num[[i, 4]]], {i, Length[num]}, {j,
5 W. G+ [- i8 r
Length[sym]}]]
, s; T8 r" j- G0 @2 i; l1 x
: {: G' ]5 O8 h; v2 O8 [" m
fs[3, 3, 8, 8]
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5