На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

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

АвторСообщение





Сообщение: 98
ссылка на сообщение  Отправлено: 05.01.22 13:29. Заголовок: ege5 Р-13 (демо-2021).


Всем добрый вечер, предлагаю обсудить решение к задаче ege5 Р-13 (демо-2021) отличающееся от программы (П.Е. Финкель, г. Тимашевск) тем, что здесь каждой строке соответствует одновременное выполнение нескольких действий. Так например, строки:

2) kod0 = bin(i)[2:] - переводит значение i в двоичный код и сохраняет его в переменной - kod0
3) kod1 = kod0 + str(kod0.count('1')%2) - подсчитывает количество «1» в двоичном коде kod0, затем формирует новый код - kod1 с добавлением к нему бита четности либо «0» либо «1»
4) kod2 = kod1 + str(kod1.count('1')%2) - подсчитывает количество «1» в двоичном коде kod1, затем формирует новый двоичный код - kod2 с добавлением к нему бита четности либо «0» либо «1»
5) Переводит двоичный код в десятичное число и сравнивает найденное значение с указанным значением в условии…
6) Выводит на печать не только итоговые значения, но и демонстрирует промежуточные значения для визуального контроля

 
for i in range(1,70):
kod0 = bin(i)[2:]
kod1 = kod0 + str(kod0.count('1')%2)
kod2 = kod1 + str(kod1.count('1')%2)
if int(kod2,2)>77:
print('N=',i,'R=',int(kod2,2),'0 =',kod0,'1 =',kod1,'2 =',kod2)
break


N= 19 R= 78 0 = 10011 1 = 100111 2 = 1001110

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 19 , стр: 1 2 All [только новые]







Сообщение: 109
ссылка на сообщение  Отправлено: 06.01.22 04:28. Заголовок: Народная мудрость пр..


Вспомнил про народную мудрость про соринку в чужом глазу, по поводу сомнений насчет вашей строки:

 цитата:
r = a1 + str(a1.count('1') % 2) + '0'



а у себя, как говориться - бревна не заметил в 5solve-145 тоже изменил алгоритм:


 цитата:
if kod.count('1')%2 == 0: kod1 = kod1+'00'
else: kod1 = kod1+'11'



Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 110
ссылка на сообщение  Отправлено: 06.01.22 04:36. Заголовок: s11kai пишет: а у с..


s11kai пишет:

 цитата:
а у себя, как говориться - бревна не заметил в 5solve-145 тоже изменил алгоритм:



вот программа, выполняющая заданный алгоритм в условии:
 
for i in range(5,80):
kod0 = bin(i)[2:]
kod1 = kod0 + str(i%2)
kod = kod1 + str(kod0.count('1')%2)
if int(kod,2)%2==0:kod = kod+'0'
else:kod = kod+'1'
if int(kod,2)>80:
print('N = ',i,'R =',int(kod,2),'kod0',kod0,'kod1',kod1,'kod',kod)
break


N = 11 R = 95 kod0 1011 kod1 10111 kod 1011111

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 111
ссылка на сообщение  Отправлено: 06.01.22 05:01. Заголовок: s11kai пишет: N = 1..


s11kai пишет:

 цитата:
N = 11 R = 95 kod0 1011 kod1 10111 kod 1011111



а так, еще короче и с тем же результатом:
 
for i in range(5,80):
kod0 = bin(i)[2:]
kod1 = kod0 + str(i%2)
kod = kod1 + stнr(kod0.count('1')%2)
kod = kod + str(kod.count('1')%2)
if int(kod,2)>80:
print('N = ',i,'R =',int(kod,2),'kod0',kod0,'kod1',kod1,'kod',kod)
break

N = 11 R = 95 kod0 1011 kod1 10111 kod 1011111

видимо и правда - нет предела совершенству!

... и так работает!
 
for i in range(5,80):
kod1 = bin(i)[2:] + str(i%2)
kod = kod1 + str(bin(i)[2:].count('1')%2)
kod = kod + str(kod.count('1')%2)
if int(kod,2)>80:
print('N = ',i,'R =',int(kod,2),'kod1',kod1,'kod',kod)
break


... и так...
 
for i in range(5,80):
kod = bin(i)[2:] + str(i%2) + str(bin(i)[2:].count('1')%2)
kod = kod + str(kod.count('1')%2)
if int(kod,2)>80:
print('N = ',i,'R =',int(kod,2),'kod',kod)
break


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 101
ссылка на сообщение  Отправлено: 05.01.22 16:54. Заголовок: N = 17 R = 142 kod0 ..


ege5 146.На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописывается (дублируется) последняя цифра.
3) Затем справа дописывается 0, если в двоичном коде числа N чётное число единиц, и 1, если нечётное.
4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число R, большее 130, которое могло получиться в результате работы автомата. В ответе это число запишите в десятичной системе.

 
for i in range(1,100):
kod0 = bin(i)[2:]
kod = kod0 + str(i%2)
kod = kod + str(kod0.count('1')%2)
kod = kod + str(kod.count('1')%2)
if int(kod,2)>130:
print('N = ',i,'R =',int(kod,2),'kod0',kod0,'kod',kod)
break


N = 17 R = 141 kod0 10001 kod 10001101

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 19 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1404
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет