特定の寸法セット (40x60 など) から読み取り可能なフォーマット比率 (3:4 または 2:3 など) を計算したいと考えています。
おそらく非常に基本的な数学ですが、頭を包むことはできません。
PHPでこれを行う方法を知っている人はいますか?
function computeReadableRatio($x, $y){
// ???
}
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);
?>
多くの場合、目的の比率に正確に一致する数値が得られないため、商の継続的な分数展開を行うことができます。その連分数を切り捨てると、最良の有理近似が得られます。切り捨てるポイントは、小さな数と結果の正確さのバランスを取りながら、あなた次第です。