У меня есть колесо фортуны, которое вращается, и для каждого приза установлена вероятность выигрыша, которая составляет до 100%.Как только количество выигрыша достигнуто, т. Е. Весь этот приз уходит со склада, вероятность устанавливается равной 0, поэтому вы не можете выиграть его снова.Моя проблема в том, что другие значения не складываются до 100. Они всегда должны добавлять до 100, иначе колесо не работает.
Я дошел до того, что разделил всезначения по сумме, округляя до двух десятичных знаков и затем складывая их вместе, но я получаю 99 вместо 100. Я попробовал несколько других способов сделать это и никогда не смогу получить 100.
edit: Моя главная проблема, кажется, в том, что есть шанс 0.01% выиграть 2 приза.Разделив их на общее количество, вы уменьшаете их до 0,000234234% или чего-то подобного, поэтому, когда я умножаю это на 100, затем округляю до 2 десятичных знаков, я получаю 0,00% - но я не могу думать ни о каком другом способе обойти это ...
<code>$jsonString = file_get_contents('wp-content/themes/supertheme/wheel_data.json');
$data = json_decode($jsonString, true);
echo '<pre>';
//print_r($data['segmentValuesArray'][0]['probability']);
echo '
';if ($ приз1 <= 5) {$ приз1before = $ data ['сегментValuesArray'] [0] ['вероятность'];$ data ['сегментValuesArray'] [0] ['вероятность'] = 0;} if ($ priz2> = 5) {$ data ['сегментValuesArray'] [1] ['вероятность'] = 0;} if ($ приз3> = 300) {$ data ['сегментValuesArray'] [2] ['вероятность'] = 0;} if ($ приз4> = 500) {$ data ['сегментValuesArray'] [3] ['вероятность'] = 0;} if ($ priz5> = 10) {$ data ['сегментValuesArray'] [4] ['вероятность'] = 0;} $ prize1total = $ data ['сегментValuesArray'] [0] ['вероятность'];$ priz2total = $ data ['сегментValuesArray'] [1] ['вероятность'];$ priz3total = $ data ['сегментValuesArray'] [2] ['вероятность'];$ приз4total = $ data ['сегментValuesArray'] [3] ['вероятность'];$ приз5total = $ data ['сегментValuesArray'] [4] ['вероятность'];$ итого = $ приз1 всего + $ приз2 всего + $ приз3 всего + $ приз4 всего + $ приз5 всего;эхо '
';
print_r($total);
echo'<pre>';
$a = 0;
foreach($data['segmentValuesArray'] as $prize_array){
if($prize_array['probability'] > 0){
$a++;
}
}
$integer = $prize1before / $a;
$divided1 = $prize1total / $total;
$rounded1 = number_format((float)$divided1, 2, '.', '');
$full1 = $rounded1 * 100;
$divided2 = $prize2total / $total;
$rounded2 = number_format((float)$divided2, 2, '.', '');
$full2 = $rounded2 * 100 + $integer;
$divided3 = $prize3total / $total;
$rounded3 = number_format((float)$divided3, 2, '.', '');
$full3 = $rounded3 * 100 + $integer;
$divided4 = $prize4total / $total;
$rounded4 = number_format((float)$divided4, 2, '.', '');
$full4 = $rounded4 * 100 + $integer;
$divided5 = $prize5total / $total;
$rounded5 = number_format((float)$divided5, 2, '.', '');
$full5 = $rounded5 * 100 + $integer;
$newtotal = $full1 + $full2 + $full3 + $full4 + $full5;
echo'<pre>';
print_r($newtotal);
echo'<pre>';
$newJsonString = json_encode($data, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
file_put_contents('wp-content/themes/supertheme/wheel_data.json', $newJsonString);
</code>