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 に答える