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

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

(2x + 3y ≠ 60) ∨ (Ax) ∨ (Ay)

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

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

Ре­ше­ние.

Решим за­да­чу гра­фи­че­ски. Усло­вие (2x + 3y ≠ 60) задаёт мно­же­ство, от­ме­чен­ное на ри­сун­ке за­кра­шен­ной об­ла­стью. Чтобы ис­ход­ное вы­ра­же­ние было тож­де­ствен­но ис­тин­но для любых целых и не­от­ри­ца­тель­ных x и y, пря­мые x ≤ A и y ≤ A долж­ны об­ра­зо­вы­вать пря­мой угол на пря­мой y  =  x, вер­ши­на ко­то­ро­го лежит на пря­мой y= дробь: чис­ли­тель: 60 минус 2x, зна­ме­на­тель: 3 конец дроби . Сле­до­ва­тель­но, они долж­ны об­ра­зо­вы­вать пря­мой угол, пе­ре­се­ка­ясь в точке (12, 12). Таким об­ра­зом, наи­мень­шее зна­че­ние A рав­ня­ет­ся 12.

 

Ответ: 12.

 

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

За­да­ча ре­ше­на пе­ре­бо­ром зна­че­ний пе­ре­мен­ных x, y и A. Верх­няя гра­ни­ца пе­ре­бо­ра за­да­на таким об­ра­зом, чтобы га­ран­ти­ро­вать, что будут про­ве­ре­ны все целые не­от­ри­ца­тель­ные зна­че­ния x и y, при ко­то­рых не вы­пол­не­но усло­вие (2x + 3y ≠ 60). Для пе­ре­бо­ра зна­че­ний со­став­ле­на про­грам­ма на языке Pascal.

var x,y,A: integer;

B: boolean;

begin

for A:=1 to 100 do begin

B:=true;

for x:=0 to 100 do for y:=0 to 100 do begin

if ((2*x+3*y<>60) or (A>=x) or (A>=y))=false then B:=false;

end;

if B=true then begin

writeln(A);

break;

end;

end;

end.

 

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

for a in range(0, 300):

k = 0

for x in range(0, 300):

for y in range(0, 300):

if (2*x + 3*y != 60) or (a >= x) or (a >= y):

k += 1

if k == 90_000:

print(a)

break


Аналоги к заданию № 16894: 17336 Все

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