重みの合計を保持するようにベクトルを設定する必要があります。合計は100でなければなりません。つまり、アイテムの数は除数に等しく、その値は商であり、合計を確保(強制)します。ベクトルの100に等しくなります。
このようなもの:100/3 = 3.333333 .. ..
vector[0]=33.33
vector[1]=33.34
vector[2]=33.33
これの合計は正確に100である必要があります(ある種の選択的な丸め?)別の例:100/6 = 16.66666667
vector[0]=16.67
vector[1]=16.67
vector[2]=16.66
vector[3]=16.67
vector[4]=16.67
vector[5]=16.66
食料品店でこのようなことが行われているのを見たことがあります。そこでは、売り物が3ドルで11ドルになる可能性があるため、レジスターには3.67、3.66などの価格が表示されます。
イプシロンでこれを行うことを考えていましたが、値の合計は正確に100になる必要がありますが、それは機能しません。
const int divisor = 6;
const int dividend = 10;
std::vector<double> myVec;
myVec.resize(6);
for (int i = 0; i < divisor; ++i)
{
...some magic that I don't know how to do
}
編集:クライアントは、小数点以下2桁に固定された値に格納(および表示)された値が100に加算されることを視覚的に確認することを望んでいます。