function getRandomWinner($ppl)
{
$choice = rand(0, array_sum(array_values($ppl)) - 1);
$sum = 0;
foreach($ppl as $name => $rank) {
$sum += $rank;
if ($choice < $sum) return $name;
}
}
$winnerName = getRandomWiner([
'Иван' => 60,
'Максим' => 20,
'Вова' => 20,
]);
[0..99]
, и посмотреть, куда оно попало.setTimeout()
попадает результат её выполнения. отправить код именно в нужнуюЭто странно, ведь под ячейкой, вроде бы, подразумеваете положение курсора в документе? А всавлять планируется целый блок. Он вставится как 1 строка, как прямоугольный блок, затирающий остальное? – вариантов несколько. И главное, зачем. Placeholder'ы реализованы много, где.
type="text/html"
т.е. это не исполняемый скрипт, а просто так хранят кусок HTML-разметки, который достают оттуда по id и вставляют в страницу. Так что показывайте другие скрипты этой страницы, иначе не разобраться. видимо, форма перегружается
{
component: "coins", amount: 10, icon: "gold"
}
reqFil()
, очевидно, мгновенно создаёт задание и выходит. Но то задание выполнится неизвестно, когда – не сразу.(list) => {}
наверх. Создать переменную start
. Там же, где console.log()
, при условиях, увеличивать переменную и снова вызывать reqFil()
Тут
$sum
– это "running sum", бегущая сумма. Идём по списку и на каждой строчке добавляем к сумме значение в ячейке.Например, всего 2 имени. Алиса с "весом" 3 и Боб с 1. Т.е. у Алисы шансов в 3 раза больше.
Сумма (длина отрезка) 4.
Берём случайное от 0 до 3 (длина 4)
Получилось, например,
$choice = 3
.Идём по списку. Алиса. $sum была 0 стала 3. $choice < $sum ? нет. Идём дальше.
Боб. $sum была 3 стала 4. $choice наконец < $sum – значит, попали в нужный интервал - Боб.