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

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

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

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



Сообщение: 2
ссылка на сообщение  Отправлено: 13.06.21 21:30. Заголовок: ЕГЭ 23№138


Исполнитель Нолик преобразует двоичное число, записанное на экране. У исполнителя есть две команды, которым присвоены номера:
1. Вычесть 1
2. Обнулить
Первая команда уменьшает число на 1. Вторая команда обнуляет все ненулевые разряды, кроме старшего (например, для исходного числа 11101 результатом работы команды будет число 10000), если таких разрядов нет, то данная команда не выполняется. Сколько существует программ, которые исходное двоичное число 10001 преобразуют в двоичное число 1?
Помогите разобраться. Обнулить-останется число степень двойки. Как определить наибольшую степень двойки в числе?

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


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




Сообщение: 2854
ссылка на сообщение  Отправлено: 13.06.21 22:35. Заголовок: Оксана2021 пишет: Ка..


Оксана2021 пишет:
 цитата:
Как определить наибольшую степень двойки в числе?

Можно подбором. Можно через целую часть логарифма по основанию 2.

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





Сообщение: 439
ссылка на сообщение  Отправлено: 14.06.21 00:42. Заголовок: Вариант решения



 цитата:
 a=[0]*20 
a[17]=1

for x in range(17,0,-1):
a[x-1] += a[x]
x1 = 2**(len(f'{x:b}')-1)
if x != x1:
a[x1] += a[x]
print(a[1])




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



Сообщение: 4
ссылка на сообщение  Отправлено: 16.06.21 16:26. Заголовок: Огромное спасибо!!..


Огромное спасибо!!

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



Сообщение: 37
ссылка на сообщение  Отправлено: 08.12.21 10:25. Заголовок: def f(x,y): if ..


 
def f(x,y):
if x==y:
return 1
if x>y:
return f(x-1,y)+f(2**(len(bin(x)[2:])-1),y)
if x<y:
return 0
print(f(17,1))


Подскажите, пожалуйста, в чем ошибка ? Программа ничего не выдает

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




Сообщение: 3078
ссылка на сообщение  Отправлено: 08.12.21 18:23. Заголовок: Оксана2021 пишет: ес..


Оксана2021 пишет:
 цитата:
если таких разрядов нет, то данная команда не выполняется

У вас в программе вторая команда выполняется всегда, и получаете бесконечную рекурсию.

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





Сообщение: 18
ссылка на сообщение  Отправлено: 12.04.23 10:40. Заголовок: Решение рекурсией


AnnaPershina пишет:

 цитата:
 
def f(x,y):
if x==y:
return 1
if x>y:
return f(x-1,y)+f(2**(len(bin(x)[2:])-1),y)
if x<y:
return 0
print(f(17,1))



Взяв за основу вашу идею, получилось вот так:


 цитата:
 
def f(s,fin):
if s==fin:
return 1
if s<fin:
return 0
if s == (2**(len(bin(s)[2:])-1)):
return f(s-1,fin)
else:
return f(s-1,fin)+ f(2**(len(bin(s)[2:])-1),fin)
print(f(17,1))



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

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