Задания
Версия для печати и копирования в MS Word
Тип 15 № 18499
i

Для ка­ко­го наи­мень­ше­го це­ло­го не­от­ри­ца­тель­но­го числа A вы­ра­же­ние

(2m + 3n > 40) ∨ ((m < A) ∧ (nA))

тож­де­ствен­но ис­тин­но при любых целых не­от­ри­ца­тель­ных m и n?

Спрятать решение

Ре­ше­ние.

Решим за­да­чу гра­фи­че­ски. Усло­вие (2m + 3n > 40) задаёт мно­же­ство, от­ме­чен­ное на ри­сун­ке за­кра­шен­ной об­ла­стью. Чтобы ис­ход­ное вы­ра­же­ние было тож­де­ствен­но ис­тин­но для любых целых и не­от­ри­ца­тель­ных m и n, пря­мые m ≤ A и n < A долж­ны об­ра­зо­вы­вать пря­мой угол на пря­мой m  =  n, вер­ши­на ко­то­ро­го лежит таким об­ра­зом, чтобы не­за­кра­шен­ная об­ласть была ниже и левее. Сле­до­ва­тель­но, они долж­ны об­ра­зо­вы­вать пря­мой угол, пе­ре­се­ка­ясь в точке (21, 21). Таким об­ра­зом, наи­мень­шее зна­че­ние A рав­ня­ет­ся 21.

 

Ответ: 21.

 

При­ме­ча­ние.

Об­ра­тим вни­ма­ние чи­та­те­лей, ис­поль­зу­ю­щих про­грамм­ный спо­соб ре­ше­ния этой и по­доб­ных задач, что в усло­вии го­во­рит­ся о не­от­ри­ца­тель­ных чис­лах, по­это­му пе­ре­бор зна­че­ний пе­ре­мен­ных m и n дол­жен про­из­во­дить­ся от 0, а не от 1.

 

При­ведём ре­ше­ние на языке Python.

for a in range(0, 300):

k = 0

for m in range(0, 300):

for n in range(0, 300):

if (2*m + 3*n > 40) or ((m < a) and (n <= a)):

k += 1

if k == 90_000:

print(a)

break

 

При­ведём ре­ше­ние Ми­ха­и­ла Глин­ско­го на языке Python.

for a in range(100):

flag = 1

for m in range(100):

for n in range(100):

f = ((2*m+3*n) > 40) or ((m < a) and (n <= a))

if f == 0:

flag = 0

break

if flag:

print(a)

break


Аналоги к заданию № 18499: 18566 18594 18630 Все

Раздел кодификатора ФИПИ: 1.5.1 Вы­ска­зы­ва­ния, ло­ги­че­ские опе­ра­ции, кван­то­ры, ис­тин­ность вы­ска­зы­ва­ния