n - это текушее значение элемента входного массива от 1 до а
так было в исходнике, т.е. текущее значение складывается со следующим значением.
> n нигде не уменьшается, значение A(n) больше нигде не > используется, а как выходной заявлен только массив D. Тогда > зачем нужна строка > > A(n)= A(n) and A(n+1) > как впрочем и строки > > A(n)= A(n)<<1 > > A(n)=A(n) xor C
просто логические операции над текущим значением
> И еще. На значение m=1 приходится восемь итераций (I=1..8), > зато как только наступает I>8, на каждое m>=2 > приходится всего лишь по одной итерации. Такая > неравномерность задумана? Или это все-таки должно быть > ``I=1'' вместо ``i=1'', что ставит все значения m в равные > условия?
Что еще за i? Оно кроме этого присваивания нигде больше не используется.
Или это тоже самое что и I?
Далее, непонятен тайный смысл
> A(n)= A(n) and A(n+1) > n=n+1
n нигде не уменьшается, значение A(n) больше нигде не используется, а как выходной заявлен только массив D. Тогда зачем нужна строка
> A(n)= A(n) and A(n+1) как впрочем и строки
> A(n)= A(n)<<1 > A(n)=A(n) xor C ???
И еще. На значение m=1 приходится восемь итераций (I=1..8), зато как только наступает I>8, на каждое m>=2 приходится всего лишь по одной итерации. Такая неравномерность задумана? Или это все-таки должно быть ``I=1'' вместо ``i=1'', что ставит все значения m в равные условия?
много вопросов12.05.03 11:45 Автор: dub Статус: Member
n - это текушее значение элемента входного массива от 1 до а
так было в исходнике, т.е. текущее значение складывается со следующим значением.
> n нигде не уменьшается, значение A(n) больше нигде не > используется, а как выходной заявлен только массив D. Тогда > зачем нужна строка > > A(n)= A(n) and A(n+1) > как впрочем и строки > > A(n)= A(n)<<1 > > A(n)=A(n) xor C
просто логические операции над текущим значением
> И еще. На значение m=1 приходится восемь итераций (I=1..8), > зато как только наступает I>8, на каждое m>=2 > приходится всего лишь по одной итерации. Такая > неравномерность задумана? Или это все-таки должно быть > ``I=1'' вместо ``i=1'', что ставит все значения m в равные > условия?
да, вы правы, опечатка ;-)))
много вопросов12.05.03 14:03 Автор: RElf <M> Статус: Member Отредактировано 12.05.03 14:10 Количество правок: 1
> > n нигде не уменьшается, значение A(n) больше нигде не > > используется, а как выходной заявлен только массив D. > Тогда > > зачем нужна строка > > > A(n)= A(n) and A(n+1) > > как впрочем и строки > > > A(n)= A(n)<<1 > > > A(n)=A(n) xor C > > просто логические операции над текущим значением
Я к тому, что указанные операции можно безболезненно выкинуть из исходника, так как на массив D они не влияют. Поэтому возникает вопрос: нет ли тут какой-то ошибки или это действительно "мусор"?
Если не брать его во внимание, то оставшая часть алгоритма просто засовывает в массив D старшие биты элементов
A(1) and B(1) and E
A(2) and B(2)
A(3) and B(3)
...
A(a-1) and B(a-1)
много вопросов12.05.03 14:21 Автор: dub Статус: Member
> > > n нигде не уменьшается, значение A(n) больше > нигде не > > > используется, а как выходной заявлен только > массив D. > > Тогда > > > зачем нужна строка > > > > A(n)= A(n) and A(n+1) > > > как впрочем и строки > > > > A(n)= A(n)<<1 > > > > A(n)=A(n) xor C > > > > просто логические операции над текущим значением > > Я к тому, что указанные операции можно безболезненно > выкинуть из исходника, так как на массив D они не влияют. > Поэтому возникает вопрос: нет ли тут какой-то ошибки или > это действительно "мусор"?
ошибки нет, двоичная арифметика, каждый битик на счету ;-)))
> Если не брать его во внимание, то оставшая часть алгоритма > просто засовывает в массив D старшие биты элементов > A(1) and B(1) and E > A(2) and B(2) > A(3) and B(3) > ... > A(a-1) and B(a-1)
мне надо узнать, на что похож алгоритм, есть ли аналогии ?