Распределение призовых банков равномерно - PullRequest
0 голосов
/ 09 февраля 2019

Таким образом, наибольшую помощь я видел из этой ветки здесь: Распределение призов для системы турниров .

Я читал несколько других, но их не быломне это не поможет, потому что я говорю на каком-то языке или просто из серии букв, которые немного трудно понять.

Так что мой выигрыш, например, 482.17 распределен по 45 участникам, что я хочу сделатьраспределить это значение с интервалами в 15%.

Из предыдущего потока я сделал все возможное, чтобы перевести это

int i;
int prizes[21];
int money=1000;
for(i = 1; i <= 20; i++){
    prizes[i] = (float) (15+(20-i)) / 100 * money;
    money -= prizes[i];
    fprintf(g,"%d) %d\n",i,prizes[i]);
}

на PHP, что я и имею ниже.

    $Points       = 482.17
    $countPlayers = 45;
    for ($i = 0; $i < $countPlayers; $i++) {
        /* Calculate Points */
        $reward = (float) (15 + ($countPlayers - $i)) / 100 * $Points;
        $Points -= $reward;

        echo $getPlayers[i] . " - " . $Points;
    }

Таким образом, обычно 15% от 482.17 должно быть 72.33, то есть 1-е место должно получить это значение.Но вместо этого он возвращает значение 164.26.Хотя пример утверждает, что делает это 30%, но даже 30% из 482,17 это 144.65

1 Ответ

0 голосов
/ 09 февраля 2019

Я думаю, это делает то, что вы просите.

<?php
$countPlayers =45;
$prizes[$countPlayers];
$money=482.17;
for($i = 1; $i <= $countPlayers; $i++){
    // Take 15% of the remaining pot each time
    $prizes[$i] = ($money * 15.0)/100.0;
    $money -= $prizes[$i];
    echo $i.")".number_format($prizes[$i],2,'.','')."\n";
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...