0

我想根据给定的一组尺寸(例如 40x60)计算可读格式比(例如 3:4 或 2:3)。

可能是非常基本的数学,但我无法理解它。

任何人都知道如何在 PHP 中做到这一点?

function computeReadableRatio($x, $y){
   // ???
}
4

2 回答 2

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);
?>
于 2013-05-16T06:17:41.530 回答
2

由于您通常不会得到与所需比率完全匹配的数字,因此您可以对其商进行连续分数扩展。截断连分数可以给你一个最好的有理近似值。截断点由您决定,平衡小数字与结果的准确性。

于 2013-05-16T06:20:58.243 回答