Мне нужно преобразовать массив чисел и итогов в простой оператор.Как я могу упростить процент (например, 25%) до простого утверждения (например, 1 из 4)?
Например, как можно преобразовать следующее, программно с помощью PHP, простых утверждений, как, 1 out of 10
, 1 out of 100
, и даже округление некоторые (например, 2 out of 100
для 9000,400000).
Создать образец массива:
$arr = array();
for ($i=0; $i < 100; $i++) {
$n = mt_rand(1,1000);
$t = mt_rand(10,100000);
if ($n > $t) continue; // skip!
$arr[] = array($n,$t);
}
/*
// Generates pairs like:
// Array
// (
// [0] => Array ([0] => 55 [1] => 8774 )
// [1] => Array ([0] => 814 [1] => 11174)
// [2] => Array ([0] => 255 [1] => 32168)
// ...
// [99] => Array ([0] => 851 [1] => 24231)
//)
*/
Запуск через функции и печати упрощенных результатов:
foreach ($arr as $a) {
echo $a[0] . '/' . $a[1] . ' ==> ' . simplifyRatio($a[0],$a[1]) . "\r\n";
}
Можете ли вы мне точку в правильном направлении, о том, как это сделать?
Вот начало функции, над которой я работаю, но решение ускользает от меня.
function simplifyRatio($n,$t) {
$p = $n/$t;
if ($p > 0.09) return round($n) . ' out of ' . round($t);
if ($p > 0.009) return round($n) . ' out of ' . round($t);
}
В идеале знаменатель должен быть: 1,2,3...10,20,30...100,200,300...1000,2000,3000...10000,20000,30000...100000 (max)
Вам необходимо выполнить условия, в которых у вас будет более 100%? – Jrod