Php 创建公式
比如说,我有一个变量X,一个变量Y和一个变量ZPhp 创建公式,php,algorithm,Php,Algorithm,比如说,我有一个变量X,一个变量Y和一个变量Z If Y = 1 then Z = 0. 下面所有的例子都是,如果Y严格大于1 * If X = 1 and Y >= 2, then Z = 1 * If X = 2 and Y >= 4, then Z = 2 (If X = 2 and Y < 4 , then Z = 1) * If X = 3 and Y >= 6, then Z = 3 (If X = 3 and Y < 6 but >= 4,
If Y = 1 then Z = 0.
下面所有的例子都是,如果Y严格大于1
* If X = 1 and Y >= 2, then Z = 1
* If X = 2 and Y >= 4, then Z = 2
(If X = 2 and Y < 4 , then Z = 1)
* If X = 3 and Y >= 6, then Z = 3
(If X = 3 and Y < 6 but >= 4, then Z = 2)
(If X = 3 and Y < 4 but >= 2, then Z = 1)
* If X = 4 and Y >= 8, then Z = 4
(If X = 4 and Y < 8 but >= 6, then Z = 3)
(If X = 4 and Y < 6 but >= 4, then Z = 2)
(If X = 4 and Y < 4 but >= 2, then Z = 1)
etc etc ...
起初我以为这是我想要的,但显然不是。知道我做错了什么吗?我如何解决这个问题?首先,我们需要分析条件和每个变量的作用 显然,X提供了Z的上界,因此Z=minX??? 仅为Y>=2提供条件,如果Y=1,则Z固定为0 地板/2=Z在上述范围内 所以Y和X必须至少为1,Z的范围为[0,X] 综上所述:
if Y < 1 or X < 1:
some error ???
elif Y == 1
Z = 0
else
Z = min(X, floor(Y / 2))
这本身不是一个PHP问题。如果你能用数学的方法表达算法,那么转换成PHP就很容易了。首先试着找到一个数学公式。看起来,Z独立于X,等于floorY/2@splash58不是真的,如果X=3,Y<4,根据你的公式,结果应该是2,但它应该是1.3/2=1.5和floor->1,看起来X是一个上限,你可以用min进行测试
if Y < 1 or X < 1:
some error ???
elif Y == 1
Z = 0
else
Z = min(X, floor(Y / 2))