• Задание из егэ по информатике.Что не так в моём коде?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Неотрицательные - это больше или равно 0. У тебя же x и y начинаются с 1. Например, при a=14 можно взять x=15, y=0, первое условие будет ложно, второе тоже, но оба числа целые неотрицательны - условие задачи выполнено.

    Ну и решение наивным перебором тоже никуда не годится. А вдруг условие перестанет выполняться, если они будут больше 200? Это тоже надо обосновать. Например, нетрудно видеть, что при x и y больше 6 вырашение 2x+3y будет точно больше 30 (=2*6+3*6), так что можно перебирать только числа от 0 до 6 (конечно же, в виде range(0,7), так как генератор range не включает последнее значение).

    Но вообще по-моему этот вопрос скорее всего не на программирование, а на понимание логических операций. И решать его правильно алгебраически или геометрически, как "должно выполняться или то, или другое". И тогда можно не останавливаться на целых значениях x и y, а позволять любые неотрицательные. Ответ, кстати, будет тот же самый: a=15.
    Ответ написан
    1 комментарий
  • Задание из егэ по информатике.Что не так в моём коде?

    @twistfire92
    Python backend developer
    Может мои размышления не самые верные, может "правильный" способ решения вообще другой, но:
    У тебя есть выражение, которое истинно тогда, когда верна хотя бы одна из двух частей.
    смотрим на левую часть. 2x+3y>30. У нас есть возможные комбинации x и y при которых это выражение будет ложным. Нам эти комбинации и нужны. Главная задача найти из этих двух комбинаций такие "граничные" комбинации, при которых любое увеличение x или y сделает выражение 2x+3y>30 истинным. Для этого пройдемся по x в диапазоне от 0 до 15 и по y в диапазоне от 0 до 10 и подставим в выражение 2x+3y<=30 И среди всех этих комбинаций нужно найти такую, которая даст максимальную сумму.

    a = 0
    for x in range(16): # от 0 до 15
    	for y in range(11): # от 0 до 10
    		if 2*(x)+3*(y)<=30:
    			if a<x+y:
    				a = x+y
    print(a)
    Ответ написан
    1 комментарий