Яндекс. Тренировки по алгоритмам и ChatGPT
На фоне новостей о том, что люди с помощью ChatGPT решают всевозможные тесты, решил проверить Яндекс. Тренировки по алгоритмам июнь 2021, занятие 1. Задача про адские кондиционеры.
В офисе, где работает программист Петр, установили кондиционер нового типа. Этот кондиционер отличается особой простотой в управлении. У кондиционера есть всего лишь два управляемых параметра: желаемая температура и режим работы.
Кондиционер может работать в следующих четырех режимах:
«freeze» — охлаждение. В этом режиме кондиционер может только уменьшать температуру. Если температура в комнате и так не больше желаемой, то он выключается.
«heat» — нагрев. В этом режиме кондиционер может только увеличивать температуру. Если температура в комнате и так не меньше желаемой, то он выключается.
«auto» — автоматический режим. В этом режиме кондиционер может как увеличивать, так и уменьшать температуру в комнате до желаемой.
«fan» — вентиляция. В этом режиме кондиционер осуществляет только вентиляцию воздуха и не изменяет температуру в комнате.
Кондиционер достаточно мощный, поэтому при настройке на правильный режим работы он за час доводит температуру в комнате до желаемой.
Требуется написать программу, которая по заданной температуре в комнате troom, установленным на кондиционере желаемой температуре tcond и режиму работы определяет температуру, которая установится в комнате через час.
Формат ввода
Первая строка входного файла содержит два целых числа troom, и tcond, разделенных ровно одним пробелом (–50 ≤ troom ≤ 50, –50 ≤ tcond ≤ 50).
Вторая строка содержит одно слово, записанное строчными буквами латинского алфавита — режим работы кондиционера.
Формат вывода
Выходной файл должен содержать одно целое число — температуру, которая установится в комнате через час.
Тупо скопировал тест задания в DeepL и закинул в ChatGPT, попросив написать на Питоне. Решение ChatGPT:
def main():
troom, tcond = map(int, input().split())
mode = input().strip()
if mode == "freeze":
if troom > tcond:
troom -= 1
elif mode == "heat":
if troom < tcond:
troom += 1
elif mode == "auto":
if troom < tcond:
troom += 1
elif troom > tcond:
troom -= 1
print(troom)
if __name__ == '__main__':
main()
В сущности, ChatGPT все сделал правильно, единственное, что он не понял про мощность кондиционера, поэтому у него температура увеличивается/уменьшается на градус. Поправим немного код:
def main():
troom, tcond = map(int, input().split())
mode = input().strip()
if mode == "freeze":
if troom > tcond:
troom = tcond
elif mode == "heat":
if troom < tcond:
troom = tcond
elif mode == "auto":
troom = tcond
print(troom)
if __name__ == '__main__':
main()Будет время, попробую остальные задания, но уже по первому очень неплохо. По крайней мере структуру и обвязку можно за минуты написать.
Если очень хочется попробовать или уже серьезно работать с ChatGPT и DALL-E, но не получается прорвать через заградительные меры (напомню, что OpenAI не дает доступа россиянам), обращайтесь, помогу.