要素のリストに重みを付け、リストからランダムな要素を選択したいと思います。私はそれを行う次のjavascriptを持っています:
var generateWeighedList = function(list, weight) {
var weighed_list = [];
// Loop over weights
for (var i = 0; i < weight.length; i++) {
var multiples = weight[i] * 100;
// Loop over the list of items
for (var j = 0; j < multiples; j++) {
weighed_list.push(list[i]);
}
}
return weighed_list;
};
var list = ['javascript', 'php', 'ruby', 'python'];
var weight = [0.5, 0.2, 0.2, 0.1];
var weighed_list = generateWeighedList(list, weight);
console.log(weighed_list.length);
ユーザーは重みを 1 から 100 までの数値で指定できます。入力は次のようになります。
var list = ['javascript', 'php', 'ruby', 'python'];
var weight = [10, 50, 70, 90];
最後の重みリストの合計が 100 になり、すべての要素の比率が 100% になるように、アルゴリズムをカスタマイズする方法は?