有人可以告诉我如何实现以下伪代码行。
c[k]=c[k] (mod M) with |c[k]|<=M/2
我不明白'with'是什么意思,是否意味着我必须确保在减少模M之后,c[k]必须小于或等于M/2。在伪代码中,'with' 通常是什么意思(如果有的话)?
请注意,M 是 int 类型。如果有帮助,我将在 Java 中实现它。
提前致谢。
有人可以告诉我如何实现以下伪代码行。
c[k]=c[k] (mod M) with |c[k]|<=M/2
我不明白'with'是什么意思,是否意味着我必须确保在减少模M之后,c[k]必须小于或等于M/2。在伪代码中,'with' 通常是什么意思(如果有的话)?
请注意,M 是 int 类型。如果有帮助,我将在 Java 中实现它。
提前致谢。
我认为这意味着 set c[k] = c[k] + x*M
, where -M/2 <= c[k] + x*M <= M/2
(选择正整数或负整数x
,以使这是真的)。
例如,如果 M = 5,我们将有:
旧值 新值 c[k] 的 c[k] 8 -2 9 -1 10 0 11 1 12 2 13 -2
这一定是伪代码吗?通常,伪代码只是描述代码将做什么,但使用更自然的语言(例如更像英语)。在这种情况下,我不确定所描述的内容。此外,我认为“与”不一定具有特殊含义,尤其是在没有看到所写其余内容的上下文的情况下。如果您提供更多信息,可能会有所帮助。
唔。马虎的伪代码,呵呵。但我认为他是说 c[k] 的绝对值也将小于或等于 M 的模值除以 2。但这或多或少只是一个猜测。我从来没有遇到过使用这个术语(with)的伪代码。也许他只是想让人们知道,由于模算术,c[k] 总是被保证在范围内。
c[k]=c[k] (mod M) 与 |c[k]|<=M/2
if(Math.abs(c[k]) <= M/2){
c[k] %= M;
}
“With”来自数学,意思是“如果条件为真,那么做”
你已经标记了这个“java”,所以我使用了 Java 数学库。