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

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

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

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





Сообщение: 174
ссылка на сообщение  Отправлено: 07.11.22 14:56. Заголовок: демоверсия ЕГЭ 2023 задание 5


Здравствуйте, Константин Юрьевич!
Вчера меня попросили помочь с решением пятого задания из демоверсии 2023, сослался на ваш сайт, поскольку у вас можно найти все, но, как оказалось, вы еще не проводили разбора данного задания.
Сходу смог придумать только частные решения, если сочтете возможным что-либо опубликовать, буду вам благодарен.
Рассуждал примерно так: Известно, что число 15 в двоичном коде = 1111, после обработки оно даст двоичный код 10110 = десятичному 22, что меньше 40. Стало быть, начинаем обрабатывать числа в цикле с 16.

 
# для 15 < n < 24, работа с двоичным кодом
for n in range(16,23+1):
k = s = bin(n)[2:]
if s.count("1")%2 == 0:
s=s+'0'
else:
s=s+'1'
s = s.replace('10', '11',1)
print(n,k,s,int(s,2))


 
# для 15 < n < 24, работа с десятичным числом
for n in range(16,23+1):
s = bin(n)[2:]
if s.count("1")%2 == 0:
k = n*2
else:
k = n*2+17
print(n,s,bin(k)[2:],k)

результат работы программы:
16 10000 110001 49
17 10001 100010 34
18 10010 100100 36
19 10011 110111 55
20 10100 101000 40
21 10101 111011 59
22 10110 111101 61
23 10111 101110 46
если невнимательно прочитать вопрос, то анализируя работу программы можно выбрать неверные ответы

А вот сегодня догнал, как можно перейти от частного случая к полновесному решению обрабатывающему любые числа, вдруг кому-то пригодится
 
# общий случай для любого числа n > 1
for n in range(1,240):
kk = s = bin(n)[2:]
if s.count("1")%2 == 0:
s = '10' + s[2:] + '0'
else:
s = '11' + s[2:] + '1'
if int(s,2)>40:
# print(n,kk,s,int(s,2)) данная строка для визуализации работы программы
break
print('ответ:',n)

С уважением, Александр

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


Администратор




Сообщение: 3768
ссылка на сообщение  Отправлено: 10.11.22 09:24. Заголовок: Александр, здравству..


Александр, здравствуйте! Спасибо, добавлю в готовые решения последний вариант.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 182
ссылка на сообщение  Отправлено: 10.11.22 11:23. Заголовок: Поляков пишет: Спас..


Поляков пишет:

 цитата:
Спасибо, добавлю в готовые решения последний вариант



Спасибо Вам, Константин Юрьевич!

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

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