組み合わせ
きょうぐろです。
つぎのような問題はどう解決したらいいでしょうか?
合計金額のみ記された請求書が毎日届くのですが、
内訳が付いていません。
事務のおばさんは個別明細伝票を請求書の金額に
なるようあれこれ組み合わせるのに苦労しているので
簡単なプログラムをつくってあげたいと思います。
(fortran)
たとえばある日の請求書が500円で、未処理の
個別伝票が50円、100円、150円、200円、300円、
400円残っている場合、
1)100円、400円
2)50円、150円、300円
3)50円、100円、150円、200円
のような組み合わせで個別伝票をまとめて請求書に
添付し処理すればいいわけです。
もっともスマートなアルゴリズムはどんなものがあるでしょうか。
個別伝票の枚数は有限ですが、不定(せいぜい20枚程度)
です。総当たりする場合でも最小の回数にするには?
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735