IPB
ЛогинПароль:

> Правильность алгоритма, используя математическую индукцию?
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)) nea.gif

Сообщение отредактировано: Perfez - 2.03.2011 12:41
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Perfez
сообщение 3.03.2011 8:55
Сообщение #2


Бывалый
***

Группа: Модераторы
Сообщений: 231
Пол: Женский

Репутация: -  6  +


просто, и со вкусом (с)

TarasBer, благодарю smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.04.2024 17:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"