如何在PHP中计算值范围内的百分比

Squ*_*Cat 0 php algorithm math formula percentage

我有一个值,我需要转换为给定一组规则的百分比.

VALUE=X
Run Code Online (Sandbox Code Playgroud)

其中X可以是从0开始的任何东西

如果:

X > 200
Run Code Online (Sandbox Code Playgroud)

我的函数的结果应该是100(百分比).

如果:

X < 200 AND >= 100
Run Code Online (Sandbox Code Playgroud)

结果应该在100到50之间(百分比).示例:X = 150将为75%

如果:

X < 100 AND >= 80
Run Code Online (Sandbox Code Playgroud)

结果应该在50到25之间(百分比).示例:X = 90将为37.5%

而如果:

X < 80
Run Code Online (Sandbox Code Playgroud)

结果应该在25和0之间(百分比).

我在PHP中的方法就是这样的

if($value > 200) return 100;
if($value > 100 && $value < 200) return ???;
Run Code Online (Sandbox Code Playgroud)

... 等等.

哪里??? 显然代表我不知道如何设置的公式.

有没有办法在一个单一的公式中做到这一点?即使不是 - 这个问题的数学方法是什么?

我知道这是非常基本的,但似乎我在小学里跳过了太多的数学课.

Del*_*ani 5

该功能可以分段定义:

在此输入图像描述

在图形上,这用四条不同梯度的直线表示.虽然没有办法在没有单独部分的情况下表示此功能,但实现上述操作非常容易.

在PHP中,此函数可以写为:

function f($x) {
    if ($x >= 200)
        return 100;
    if ($x >= 100 && $x < 200)
        return 50 + 50 * (($x - 100) / 100);
    if ($x >= 80 && $x < 100)
        return 25 + 25 * (($x - 80) / 20);
    if ($x < 80)
        return 25 * ($x / 80);
}
Run Code Online (Sandbox Code Playgroud)