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

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

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

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



Сообщение: 6
ссылка на сообщение  Отправлено: 03.03.22 12:26. Заголовок: задание 15 задача 425


425) (С. Скопинцева) Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа А формула
¬ (ДЕЛ(x, 16) ≡ ДЕЛ(x, 24))  ДЕЛ(x, A)
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной x)?

Написала программу решения следующего задания , но ответа не могу получить. Что я не учитываю? Или я неправильно записала формулу? На что нужно смотреть внимательно при написании формулы в этом задании?
Ниже программа, которая не проходит
 def Del(x,d):   
return x%d == 0
def F(x,A):
return not(Del(x,16)== Del(x,24)) <= Del(x,A)

k=0
for A in range(1,10000):
OK = True
for x in range(1,100000000):
if not F(x,A):
OK = False
break
if OK:
print(A)

Все же нашла выход и решение этой задачи, записала формулу по-другому и программа дала верный ответ:
 def f( x, A ): 
return ((x%16==0)!= (x%24==0)) <= (x%A==0)
for A in range(1,1000):
OK = True
for x in range(1,1000):
if not f(x,A):
OK = False
break
if OK:
print( A )

Но все же для меня пока остается загадкой, почему первая моя программа написано не верно:( Почему программа не дала ответа?

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


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




Сообщение: 3351
ссылка на сообщение  Отправлено: 06.03.22 12:52. Заголовок: flo23 пишет: почему ..


flo23 пишет:
 цитата:
почему первая моя программа написано не верно:( Почему программа не дала ответа?

Потому что <= выполняется раньше, чем not. Нужно так:
def F(x,A):    
return ( not(Del(x,16)== Del(x,24)) ) <= Del(x,A)


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

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