w
Size: a a a
w
DM
DM
w
w
G
var arr = ['1:1', '4:4', '5:5', '2:2', '3:3', '20:20']
var getRandomValue = arr => {
let total = arr.reduce((acc, x) => +x.split(':')[0]+acc, 0)
let rnd = Math.round(Math.random() * total)
return arr.find((x) => {
rnd -= x.split(':')[0]
return rnd <= 0
})
}
var res = {}
for (let i=0; i<20; i++) {
var r = getRandomValue(arr)
var [key, value] = r.split(':')
res[key] = ~~res[key]+1
}
res;
G
DM
G

DM
i
G
G
i
G
DM
DM
DM
var arr = ['1:Вася', '1:Петя', '1:Коля', '3:Маша']
var getRandomValue = arr => {
let total = arr.reduce((acc, x) => +x.split(':')[0]+acc, 0)
let rnd = Math.floor(Math.random() * total)+1
return arr.find((x) => {
rnd -= x.split(':')[0]
return rnd <= 0
})
}
var res = {}
for (let i=0; i<1e6; i++) {
var r = getRandomValue(arr)
var [key, value] = r.split(':')
res[value] = ~~res[value]+1
}
res;
DM
DM
{Коля: 166840, Вася: 167057, Петя: 166185, Маша: 499918}