帮助理解伪代码

时间:2010-03-07 20:15:11

标签: java pseudocode

有人可以告诉我如何实现以下伪代码行。

c[k]=c[k] (mod M) with |c[k]|<=M/2

我不明白'with'意味着什么,这是否意味着我必须确保在减少模M后,c [k]必须小于或等于M / 2。伪代码中“with”通常意味着什么(如果有的话)?

请注意,M的类型为int。如果有帮助的话,我在Java中实现它。

提前致谢。

4 个答案:

答案 0 :(得分:4)

我认为这意味着设置c[k] = c[k] + x*M,其中-M/2 <= c[k] + x*M <= M/2(选择正整数或负整数x,这样就可以了。)

例如,如果M = 5,我们将:

       Previous value         New value
          of c[k]              of c[k]
            8                    -2
            9                    -1
           10                     0
           11                     1
           12                     2
           13                    -2

答案 1 :(得分:0)

这是否必然是伪代码?通常,伪代码只是描述代码将执行的操作,但是使用更自然的语言(例如更像英语)。在这种情况下,我不确定甚至被描述的是什么。另外,我不认为'with'必然具有特殊含义,特别是在没有看到所写内容的其余部分的情况下。如果您提供更多信息,可能会有所帮助。

答案 2 :(得分:0)

嗯。邋pseudo的伪代码,嘿。但我认为他说c [k]的绝对值也会小于或等于M的模数除以2.这或多或少只是猜测。我从未遇到过使用此术语(with)的伪代码。也许他只是试图让人们知道c [k]总是因为模运算而被保证在界限内。

答案 3 :(得分:-1)

c [k] = c [k](mod M),| c [k] |&lt; = M / 2

if(Math.abs(c[k]) <= M/2){
  c[k] %= M;
}

“With”来自数学,意思是“如果条件成立,那就这样做”

你已经标记了这个“java”,所以我使用了Java数学库。