2010-05-20 5 views
4

Я реализую алгоритм Верхоффа для схемы контрольных цифр, но, похоже, есть некоторые разногласия в веб-источниках относительно того, какой цикл перестановки должен составлять основу таблицы перестановок.Правильный цикл перестановки для алгоритма Верхоффа

Wikipedia использует: (36) (01589427)

в то время как apparently, Численное Recipies использует другой цикл и this book использует: (0) (14) (23) (56789), цитируемый из 1990 статьи Winters , Он также отмечает, что Верхофф использовал одну цитату из Википедии.

Теперь моя теория чисел немного ржавая, но цикл Википедии ясно повторится после 8-й степени, в то время как книга одна займет 10, несмотря на то, что она говорит, что s^8 = s. В таблице 2.14 (b) имеются другие ошибки в 2-циклах, так что это все равно сомнительно.

К сожалению, у меня нет копий оригинальных статей (и я слишком туго, чтобы заплатить/отвратить, что 40-летние знания все еще удерживаются для выкупа издателями), а также копия Numerical Recipes для проверки (и я не хочу устанавливать их защищенный от паранойей плагин защиты от копирования для просмотра в Интернете).

Значит, кто-нибудь знает, что является правильным? Правильно ли они оба?

ответ

2

Существует старое издание Numerical Recipes here в виде PDF-файлов. Алгоритм Верхоффа описан в разделе 20.3. Он использует ту же перестановку, что и статья Википедии.

+0

Спасибо interjay, но насколько я могу судить, таблица перестановок, используемая там, совершенно неверна. Перестановки идентичности там нет, а другие записи не являются даже перестановками (элементы появляются несколько раз). – James

+0

@James: Это точно такая же перестановка, как и в Википедии, за исключением того, что она упорядочивается столбцами вместо строк. Если вы посмотрите на столбцы таблицы перестановок Википедии, вы получите точные значения, которые использует NR. NR форматировал таблицу смутно, так как они отделяли числа на группы по 10, когда их следовало разделить на группы по 8. – interjay

+0

А, я вижу это сейчас. Это не помогло, чтобы они также переключили ориентацию между различными матрицами ... – James

1

Перестановка (0) (14) (23) (56789) лучше, чем перестановка (36) (01589427). Это связано с тем, что (36) (01589427) может обнаруживать только 88,89% одиночных ошибок транспонирования, а (0) (14) (23) (56789) может обнаружить все из них. Рассмотрим, что числовой код 716 задается 0 в качестве контрольной цифры, если используется (36) (01589427). то есть код будет равен 7160. Но, если цифры 1 и 6 транспонированы, эта схема контрольной цифры не дает ошибки, так как контрольная сумма равна нулю. Это не относится к (0) (14) (23) (56789).

Смежные вопросы