简化伪代码

时间:2015-04-15 14:17:50

标签: pseudocode simplification

我正在尝试将以下伪代码重写为最简单的if-else,但我正在努力完全理解逻辑。

if (a <= b) then  // Here, a <= b.
  if (y > b) then P  // Here, (a <= b) & (y > b).  
  else if (x < a) then P  // Here, (a <= b) & !(y > b) & (x < a).
    else if ((y >= a) & (x <= b)) then Q else R  

到目前为止,我对伪代码的解释都写在上面的评论中。 我认为我已经正确地理解了前三行伪代码的逻辑。

但是,我不知道如何解释伪代码的第四行和最后一行的逻辑。 我想帮助理解第四行中四个变量的状态,以及如何将伪代码重写为最简单的if-else。

1 个答案:

答案 0 :(得分:1)

如何到达最后一行:

a <= b必须是真的

y > b必须是假的

x < a必须是假的

所以最后一行是:

(a <= b) & !(y > b) & !(x < a) & (y >= a) & (x <= b)

这导致以下结果:

a <= b & a <= x & a <= y - &gt; a必须是最小的值

b >= a & b >= y & b >= x - &gt; b必须是最大的价值

y <= b & y >= a - &gt; y必须介于a和b之间

x >= a & x <= b - &gt; x必须介于a和b之间

导致:

if((x >= a & x <= b) & (y >= a & y <= b))

(但这仅在您想要到达最后一行时才有效)