Автор | Сообщение |
|
Отправлено: 20.02.22 12:46. Заголовок: 15 задание №285
285) На числовой прямой даны отрезки A = [30; 62], B = [25; 38] и C = [40; N] и функция F(x) = (not (x in B) <= not (x in A) ) and (not (x in C) <= (x in B) ) При каком наименьшем числе N функция F(x) истинна более чем для 20 целых чисел x? Мое решение a1,a2,b1,b2, c1=30,62,25,38,40 a=[ i for i in range(a1,a2+1)] b=[i for i in range(b1, b2+1)] for c2 in range(41,100): k=0 c=[i for i in range(c1,c2+1)] for x in range(0,100): if (((x in b) or (x not in a)) and ((x in c) or (x in b)))==0: k+=1 if k>20: print (c2, k) break дает 41, в ответе - 69. Что не так?
|
|
|
Ответов - 3
[только новые]
|
|
|
| Администратор
|
Сообщение: 3335
|
|
Отправлено: 20.02.22 12:49. Заголовок: Не решайте задачи на..
Не решайте задачи на отрезки с помощью программы. Вы замучаетесь по граблям ходить.
|
|
|
|
Отправлено: 20.02.22 19:43. Заголовок: и правда...
А руками действительно сошлось... Если будет время, все равно программу поковыряю. Самой интересно, где косяк
|
|
|
|
| постоянный участник
|
Сообщение: 412
|
|
Отправлено: 21.02.22 16:58. Заголовок: ТеплыхИБ пишет: А р..
ТеплыхИБ пишет: цитата: | А руками действительно сошлось... Если будет время, все равно программу поковыряю. Самой интересно, где косяк |
| У Вас k увеличивается для х=0, а не должен. Первый раз k надо увеличить для 25
|
|
|
|