比如说,我有一个变量 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, 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 ...
我正在尝试创建一个公式来根据上述信息生成该变量 Z。
我已尝试执行以下操作:
$Z = $X > $Y ? $Y : floor($X / $Y);
起初我以为这是在做我想做的事,但显然不是。知道我做错了什么以及如何解决这个问题吗?
最佳答案
首先我们需要分析条件和每个变量的作用。
X
显然提供了Z
的上限,所以Z = min(X, ???)
- 条件仅针对
Y >= 2
提供,如果Y = 1
,则Z
固定为 0 floor(Y/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 - 创建公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53709117/