Php 如何从图像维度计算可读格式比率

Php 如何从图像维度计算可读格式比率,php,math,Php,Math,我想从给定的一组维度(例如40x60)计算可读格式比率(例如3:4或2:3) 可能是非常基础的数学,但我无法理解 有人知道如何在PHP中实现这一点吗 function computeReadableRatio($x, $y){ // ??? } 将为您提供分割两个输入的最大数字。然后你可以除以结果得到你的缩减比率 <?php function computeReadableRatio($x, $y){ $d = gmp_gcd($x, $y); $xnew = gmp

我想从给定的一组维度(例如40x60)计算可读格式比率(例如3:4或2:3)

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

有人知道如何在PHP中实现这一点吗

function computeReadableRatio($x, $y){
   // ???
}
将为您提供分割两个输入的最大数字。然后你可以除以结果得到你的缩减比率

<?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);
?>

将为您提供两个输入的最大除法。然后你可以除以结果得到你的缩减比率

<?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);
?>


由于您通常无法得到与所需比率完全匹配的数字,因此您可以对它们的商进行扩展。截断连分数可以得到一个新的结果。截断的点取决于您,平衡小数值与结果的精确性。

由于您通常无法得到与所需比率完全匹配的数值,您可以对它们的商进行扩展。截断连分数可以得到一个新的结果。截断的点取决于您,平衡小数值和结果的精确性。

您只需要将分数减少到最低项即可?就像你在二年级学习分数时所做的那样,“最大公约数”有没有敲响警钟?使用它,如果你遇到麻烦,给我们看看你的代码。伙计们,谢谢你们催我。我知道这是我应得的,这是超基本的东西。但我仍然需要这种投入。不,那是简单的虐待,不是“推”。你有理由标记它们,或者至少标记第一个。你的问题很好,仔细考虑后,不要犹豫。也许我从来没有上过二年级:)你只需要把分数减到最低?就像你在二年级学习分数时所做的那样,“最大公约数”有没有敲响警钟?使用它,如果你遇到麻烦,给我们看看你的代码。伙计们,谢谢你们催我。我知道这是我应得的,这是超基本的东西。但我仍然需要这种投入。不,那是简单的虐待,不是“推”。你有理由标记它们,或者至少标记第一个。你的问题很好,仔细考虑后,不要犹豫。也许我从来没有上过二年级:)哦,我上得太早了。基本上使用这个函数,给它加上$x=40和$y=60,我得到了这个:$xnew=0.34782608695652$ynew=0.52173913043478-我想我错过了一些重要的东西?@CummanderCheckov好的,看上面,它在ideone上工作并产生
20 2 3
。事实证明,GMP图书馆还有一些额外的事情要做。哦,我来得太早了。基本上使用这个函数,给它加上$x=40和$y=60,我得到了这个:$xnew=0.34782608695652$ynew=0.52173913043478-我想我错过了一些重要的东西?@CummanderCheckov好的,看上面,它在ideone上工作并产生
20 2 3
。事实证明,GMP库中还有一些额外的东西。