私は一つの質問があります。F#のお金の配分頭痛
let totalAmount = 1400.0M
let allocations = [| 0.45M; 0.45M; 0.1M |]
let minAmount = 250.0M
は、の3つの者に割り当てるために$ 1400があると仮定してみましょうを、割り当てる最小量は$ 250。各当事者は総額の割合が異なります。ここでパーティーA & Bは合計金額の45%を得、パーティCは10%を得るでしょう、割り当てられた金額は最小金額の回数でなければなりません。 私は結果を取得するための関数を書きたい:
let allocated = [| 500.0M; 500.0M; 250.0M |]
をしかし、私は機能のための良い方法を把握することはできません。問題は次のとおりです:パーティCでは、$ 1400の10%の金額は$ 140未満で、$ 250未満ですが、パーティAとBはそれぞれ$ 500しかないので、まだ$ 400残っています。最低額は250ドルです。 良いアイデアがある場合は、コードを表示してください。 おかげで、この(アルゴリズムの説明については、インラインコメントを参照)について ジョン
だから、 '割り当てられた[n]は'です複数の'' alloc [n] * totalAmount'に可能な限り近い['n]'を割り当てる '' minAmount'?あなたが求めていることを伝えるのは難しいです。 –