Помощь с пониманием Псевдо-кода

голоса
0

Может кто-то пожалуйста, скажите мне, как я могу реализовать следующую строку псевдо-кода.

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

Я не понимаю, что «с» средствами, это означает, что я должен гарантировать, что после приведения по модулю М, с [к] должно быть меньше или равно M / 2. Что значит «с» обычно имеют в виду (если что-нибудь) в псевдо-коде?

Обратите внимание, что M имеет тип междунар. Я реализация этого в Java, если это помогает.

Заранее спасибо.

Задан 07/03/2010 в 21:15
источник пользователем
На других языках...                            


4 ответов

голоса
0

Это обязательно псевдо-код? Как правило, псевдо-код просто описываю то, что код будет делать, но в более естественном языке (например, больше похоже на английском языке). В этом случае, я не совсем уверен, что даже описываются. Кроме того, я не думаю, что «с» обязательно имеет специализированное значение, особенно не видя контекст остальной части того, что написано. Это может быть полезно, если вы предоставить более подробную информацию.

Ответил 07/03/2010 в 21:18
источник пользователем

голоса
4

Я думаю , что это означает , что множество c[k] = c[k] + x*M, где -M/2 <= c[k] + x*M <= M/2(выбрать положительное или отрицательное целое число xтакое , что это правда).

Например, если М = 5, мы имеем:

       Предыдущее значение Новое значение
          С [K] С [к]
            8 -2
            9 -1
           10 0
           11 1
           12 2
           13 -2
Ответил 07/03/2010 в 21:18
источник пользователем

голоса
0

Хм. Слоппи псевдокод, хе. Но я думаю, что он говорит о том, что абсолютное значение С [K] будет меньше или равно слишком значение по модулю М делится на 2. Это более или менее просто догадка однако. Я никогда не сталкивался с псевдокодом с этой терминологией (с) используются. Может быть, он просто пытается дать людям знать, что с [к] всегда застрахованное быть с в пределах из-за арифметических операций по модулю.

Ответил 07/03/2010 в 21:22
источник пользователем

голоса
-1

С [K] = с [K] (по модулю M) с | с [к] | <= М / 2

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

«С» происходит от математики, и означает «Если условие истинно, то сделать это»

Вы помечены это «Java», поэтому я использовал математическую библиотеку Java.

Ответил 07/03/2010 в 21:23
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more