我想从给定的一组维度(例如40x60)计算可读格式比率(例如3:4或2:3)。
可能是非常基本的数学,但我无法绕过它。
任何人都知道如何在PHP中完成这项工作?
function computeReadableRatio($x, $y){
// ???
}
答案 0 :(得分:2)
gmp_gcd将为您提供分配两个输入的最大数字。然后你可以通过结果来划分你的缩减比率。
<?php
function computeReadableRatio($x, $y){
$d = gmp_gcd($x, $y);
$xnew = gmp_div($x, $d);
$ynew = gmp_div($y, $d);
echo gmp_strval($d) . ' ' . gmp_strval($xnew) . ' ' . gmp_strval($ynew);
}
computeReadableRatio(40, 60);
?>
答案 1 :(得分:2)
由于您经常无法获得完全匹配所需比率的数字,因此您可以对其商数进行continued fraction扩展。截断连续分数可以给你best rational approximation。截断的点取决于你,平衡小数字与结果的准确性。