Я хочу выбрать один из имеющихся у меня предметов в соответствии с возможностями (в соответствии с квадратом p).
Для этого;
for (let sec_index = 0; sec_index < 1000;) { //i want select 1000 pcs
var random_item_num = Math.floor(Math.random() * posts_array.length); //select random item and return index number
var random_item = posts_array[random_item_num]; //return random item key.
var random_item_real_prob = prob_map[random_item]; //return random item's p , 0.56489321 etc... '.
var random_item_prob = Math.pow(random_item_real_prob, 2) * s_loc; //s_loc is a coefficient
var random_sayi = Math.random(); //new random number
if (random_sayi<random_item_prob) {
selection_array[sec_index] = random_item; // return [[1: id][2:id]......]
selection_count[random_item_prob]++; //return [[p : 1] [other p : 10] ......]
sec_index++;
}
}
Эти коды все еще работают.
НО; p, счетчик выбора в 1000
Как вы увидите здесь, выбор слишком велик длянекоторые возможности. Это повторяется каждый раз. Хотя их позиции в массиве постоянно меняются, результат один и тот же.
Это математическая проблема?
Спасибо!