Автор | Сообщение |
|
Отправлено: 23.12.24 14:49. Заголовок: 15 задание 7836
|
|
|
Ответов - 4
[только новые]
|
|
|
| Администратор
|
Сообщение: 4075
|
|
Отправлено: 24.12.24 21:11. Заголовок: Ваше решение верно. ..
Ваше решение верно. Спасибо за замечание, ответ исправлен.
|
|
|
|
Отправлено: 10.01.25 21:02. Заголовок: задание 15_578
здравствуйте. Решаю подобный номер (15_578) программой. Но она долго работает. Руками числа большие, надо их еще вычислить, поэтому пробую программировать. Можете подсказать, как программу преобразовать, чтобы она быстрее работала. (Понимаю, что числа большие) def f(x): a = a1<=x<=a2 p = 253127<=x<=775637 q = 128932<=x<=894567 r = 346831<=x<=529871 return (not(a))<=((p==q)<=(r==q)) m=[] for a1 in range(100000,900000): for a2 in range(a1,900001): if all(f(x)==1 for x in range(100000,900000)): m.append(a2-a1) print(min(m))
|
|
|
|
| Администратор
|
Сообщение: 4092
|
|
Отправлено: 10.01.25 21:37. Заголовок: Если вы хотите решат..
Если вы хотите решать программой, рекомендую отличный способ, который придумал Леонид Шастин: def f(x): a = a1<=x<=a2 p = 253127<=x<=775637 q = 128932<=x<=894567 r = 346831<=x<=529871 return (not(a))<=((p==q)<=(r==q)) allPoints = [ x+y for x in [253127, 775637, 128932, 894567, 346831, 529871] for y in [-0.1, 0, 0.1] ] m=[] for a1 in allPoints: for a2 in allPoints: if all(f(x)==1 for x in allPoints): m.append( round(a2-a1) ) print(min(m)) Источник.
|
|
|
|
Отправлено: 11.01.25 00:07. Заголовок: :sm36: огромное спа..
огромное спасибо. Действительно все быстро работает! Леонид предложил отличную программу, ответ выдается в считанные секунды и изменения от программы Кабанова небольшие, не нужно заучивать новый алгоритм
|
|
|
|