|
> No.3784[元記事へ]
GAIさんへのお返事です。
> そこで一般にAの要素を与え(50個くらいは可能な様にしたい。)
> このAの異なる要素の和で指定するNの値にできるものが何通りあるか(具体的なAの要素はわからなくてもよい。全部で何通り可能かの数だけを知りたい。)
これも上限はあります。nの値までの配列がとれれば可能です。
参照 #3621 動的計画法
DATA 32 !値
DATA 10 !データの個数m
DATA 1,2,3,4,6,8,12,16,24,32 !データ
READ X
DIM A(X) !1からxまでの数
MAT A=ZER
READ M
LET S=0
FOR i=1 TO M !ひとつずつ取り出す
READ D
FOR P=MIN(S,X-D) TO 1 STEP -1 !部分和を求める
IF A(P)>0 THEN
LET T=P+D
LET A(T)=A(T)+A(P)
END IF
NEXT P
IF D<=X THEN LET A(D)=A(D)+1
LET S=S+D
NEXT i
PRINT A(X);"通り" !答え(場合の数)
END
|
|