| Perfez |
2.03.2011 12:40
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Модераторы Сообщений: 231 Пол: Женский Репутация: 6 |
Предоставляется такой, довольно-таки простой код с пре- и пост- условиями:
Код #предусловие: bit - есть непустая последовательность из нулей и/или единиц r = 0 t = 1 for i in range(len(bit)): r += t * bit[i] t *= -1 # постусловие: r делится на 3 если только число с бинарным представлением: # bit[0] bit[1] bit[2] ... bit[len(bit)-1] # делится на 3. А мне собственно интересно, как доказать (математически) то, что алгоритм правилен в принципе p.s. Пробовал делать такое через инвариант цикла, но в итоге ничего - выяснилось лишь то, что инвариант в этом случае будет равен t = -1range(len(bit)) Сообщение отредактировано: Perfez - 2.03.2011 12:41 |
Perfez Правильность алгоритма 2.03.2011 12:40
TarasBer Надо доказать, что число в 2ичной системе счислени... 2.03.2011 12:59
Perfez просто, и со вкусом (с)
TarasBer, благодарю :) 3.03.2011 8:55![]() ![]() |
|
Текстовая версия | 9.12.2025 3:16 |