±1±2±3±4±5±6±7±8±9±10=11

 投稿者:山中和義  投稿日:2016年 3月26日(土)07時29分13秒
  問題
次の式で、左辺を計算したとき、右辺と等しくになるように演算子を確定せよ。
  ±1±2±3±4±5±6±7±8±9±10=11

答え

LET N=10 !1からnまで
LET C=0 !場合の数
FOR i=0 TO 2^N-1 !ビットパターン
   LET S=0 !左辺
   LET T=i
   FOR J=1 TO N
      LET S=S+(2*MOD(T,2)-1)*J !±j
      LET T=INT(T/2)
   NEXT J
   IF S=11 THEN !右辺
      LET C=C+1
      LET T=i !結果を表示する
      FOR J=1 TO N
         IF MOD(T,2)=1 THEN PRINT "+"; ELSE PRINT "-";
         PRINT STR$(J);
         LET T=INT(T/2)
      NEXT J
      PRINT
   END IF
NEXT i
PRINT C;"通り"
END


実行結果
+1+2-3+4+5+6+7+8-9-10
-1-2+3+4+5+6+7+8-9-10
+1+2+3-4+5+6+7-8+9-10
-1+2-3+4+5+6+7-8+9-10
+1+2+3+4-5+6-7+8+9-10
-1+2+3-4+5+6-7+8+9-10
+1-2-3+4+5+6-7+8+9-10
-1+2+3+4-5-6+7+8+9-10
+1-2+3-4+5-6+7+8+9-10
-1-2-3+4+5-6+7+8+9-10
+1+2-3-4-5+6+7+8+9-10
-1-2+3-4-5+6+7+8+9-10
+1+2+3+4-5+6+7-8-9+10
-1+2+3-4+5+6+7-8-9+10
+1-2-3+4+5+6+7-8-9+10
+1+2+3+4+5-6-7+8-9+10
-1+2+3+4-5+6-7+8-9+10
+1-2+3-4+5+6-7+8-9+10
-1-2-3+4+5+6-7+8-9+10
+1-2+3+4-5-6+7+8-9+10
+1+2-3-4+5-6+7+8-9+10
-1-2+3-4+5-6+7+8-9+10
-1+2-3-4-5+6+7+8-9+10
-1+2+3+4+5-6-7-8+9+10
+1-2+3+4-5+6-7-8+9+10
+1+2-3-4+5+6-7-8+9+10
-1-2+3-4+5+6-7-8+9+10
+1+2-3+4-5-6+7-8+9+10
-1-2+3+4-5-6+7-8+9+10
-1+2-3-4+5-6+7-8+9+10
+1-2-3-4-5+6+7-8+9+10
+1+2+3-4-5-6-7+8+9+10
-1+2-3+4-5-6-7+8+9+10
+1-2-3-4+5-6-7+8+9+10
-1-2-3-4-5+6-7+8+9+10
35 通り




場合の数

その1

PRINT G(10,11) !漸化式
END
EXTERNAL FUNCTION G(N,S)
IF N=0 THEN
   LET G=0
   IF S=0 THEN LET G=1
ELSE
   LET G=G(N-1,S-N)+G(N-1,S+N)
END IF
END FUNCTION



その2

LET N=10 !動的計画法
LET M=N*(N+1)/2
DIM D(0 TO M+N),DD(0 TO M+N)
MAT D=ZER
MAT DD=ZER
LET D(0)=1
FOR i=1 TO N
   LET MX=i*(i+1)/2
   FOR S=0 TO MX
      LET DD(S)=D(ABS(S-i))+D(S+i)
   NEXT S
   MAT D=DD
NEXT i
PRINT D(11)
END


 

戻る