• 締切済み

アルゴリズムの書き方について

柔軟に引数を変えられる関数Fがあり、 その関数Fの引数となりえる集合A={a1,a2,a3} があるときに、 b1=F(a1) b2=F(a2) b3=F(a3) b4=F(a1,a2) b5=F(a1,a3) b6=F(a2,a3) b7=F(a1,a2,a3) という操作をして、集合B={b1,b2,b3,b4,b5,b6,b7} に各値を入力するような数式/アルゴリズムの記載方法を ご教授いただきたいです。 極力、表現する行数を少なくしたく、 イメージとしては、 B = F( Hoge-func(A)) のような記載で、上記を表現したいと思っています。 For文を使った表現でも構いません 宜しくお願い致します。

みんなの回答

  • ddtddtddt
  • ベストアンサー率56% (179/319)
回答No.2

 集合Aがn個の要素を持つ時、Aの中からj=1~n個の組み合わせを取り出すところがネックになると思います。  それが出来てしまえば、引数の個数が可変な関数はすぐ書けますし、組み合わせの総数 N=∑j nCj はすぐ計算できるので、それにあわせてBを生成するForループも書けます。  最初の部分は、どうお考えですか?。すでにあるとか?(^^)。

回答No.1

引数1個だけ, 2個だけ, 3個だけを受け付けるサブルーチンと関数を作ったことある。 そのときはエラー発生時の処理を使ったな。これからエラーが起きたら、このラベルへ飛ぶってのを2つ作った。

関連するQ&A