有人可以告诉我如何实现以下伪代码行。
c[k]=c[k] (mod M) with |c[k]|<=M/2
我不明白'with'意味着什么,这是否意味着我必须确保在减少模M后,c [k]必须小于或等于M / 2。伪代码中“with”通常意味着什么(如果有的话)?
请注意,M的类型为int。如果有帮助的话,我在Java中实现它。
提前致谢。
答案 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数学库。