Сегодня увидел на репетиторском канале (https://t.me/mimimaths) простенькую задачку на логику. И решил попробовать скормить ее ChatGPT и Gemini. Просто интереса ради. Вспомнил, что когда вышла ChatGPT 4-o в демках показывали, как она якобы может заменить учителей.
ChatGPT мне выдал сначала неверный ответ, а потом после наведения на верный ответ, смог дать верный ответ и объяснить его, не так и плохо, но если ты знаешь верный ответ, то наверное и репетитор тебе не нужен, так что тест на репетитора провален.
Я: изображение с задачей
ChatGPT 4-o (пер. с англ.): Задача состоит в том, сколько поездов прибудет на станцию в час, если они будут проходить каждые 5 минут в противоположном направлении и их скорости будут одинаковыми.
Поскольку поезда ходят каждые 5 минут, мы можем подсчитать, сколько поездов проходит за один час.
В часе 60 минут, поэтому:
Таким образом, за один час на станцию прибудут 12 поездов.
Я: Но ведь я то тоже еду на электричке, навстречу
ChatGPT 4-o: Отличное замечание! Действительно, вы движетесь навстречу встречным электричкам, и это влияет на частоту встреч.
Если предположить, что скорости вашей электрички и встречных одинаковы, то каждые 5 минут между встречами — это результат как их движения, так и вашего. В данном случае, время встречи сокращается в два раза. Это значит, что электрички на самом деле отправляются с вокзала каждые 10 минут, а вы встречаете их каждые 5 минут из-за встречного движения.
Тогда за один час на вокзал прибудет:
Таким образом, за час к вокзалу прибудет 6 электричек.
Gemini (1.5 Flash) выдал более интересные ответы. Сам к ответу он прийти не смог, а когда я ему его дал и попросил объяснить, объяснение было весьма бредовым. Если не читать внимательно, то можно даже местами начать верить в его логику. Длинные ответы, в которых ОЧЕНЬ МНОГО галлюцинаций, но читать смешно, поэтому я и захотел создать эту статью!
ДИАЛОГ С GEMINI ДОВОЛЬНО ДЛИННЫЙ, ТАК ЧТО САМЫЕ ИНТЕРЕСНЫЕ ЦИТАТЫ ИЗ НЕГО Я ВЫНЕС СРАЗУ ПОД ДИАЛОГОМ
Я: изображение с задачей
Gemini:
Понимание задачи:
Вы едете на электричке от вокзала.
Каждые 5 минут вам встречается электричка, идущая к вокзалу.
Скорости всех электричек одинаковые.
Нужно узнать, сколько электричек приедет на вокзал за час.
Решение:
Если каждые 5 минут встречается одна электричка, то за 60 минут (1 час) встретится:
60 минут / 5 минут/электричка = 12 электричек.
Ответ: За час на вокзал приедет 12 электричек.
Пояснение: Представьте, что вы стоите на месте и считаете проезжающие мимо вас электрички. Каждые 5 минут одна электричка проезжает мимо вас и направляется к вокзалу. Значит, за час мимо вас проедет 12 электричек. Так как скорости всех электричек одинаковые, то все они доедут до вокзала примерно в одно и то же время. Следовательно, на вокзал за час прибудет 12 электричек.
Я: Но ведь я то тоже еду на электричке, навстречу
Gemini: Вы абсолютно правы! Я допустил упрощение в своих рассуждениях.
Давайте разберемся подробнее:
Если вы и встречные электрички движутся с одинаковой скоростью, то ситуация напоминает встречные потоки машин на дороге. Когда две машины движутся навстречу друг другу с одинаковой скоростью, расстояние между ними уменьшается вдвое быстрее, чем если бы одна из машин стояла на месте.
Таким образом, если каждые 5 минут вы встречаете одну электричку, то за 5 минут две электрички (ваша и встречная) преодолевают путь, равный двум расстояниям между станциями.
Чтобы найти, сколько электричек приедет на вокзал за час, нам нужно:
Узнать, сколько расстояний между станциями преодолевают две электрички за час:
За 5 минут - 2 расстояния.
За 60 минут (1 час) - 2 расстояния/5 минут * 60 минут = 24 расстояния.
Поделить общее количество пройденных расстояний на 2:
24 расстояния / 2 = 12 электричек.
Ответ: Несмотря на то, что вы сами находитесь в движении, на вокзал за час приедет все равно 12 электричек.
Почему так происходит? Представьте, что вы стоите на месте, а все остальные электрички движутся. За час мимо вас проедет 12 электричек. Но если вы тоже двигаетесь, то просто встретите эти же 12 электричек чуть раньше. Количество электричек, прибывающих на вокзал, от этого не изменится.
Вывод: Даже учитывая ваше движение, ответ на задачу остается прежним: за час на вокзал приедет 12 электричек.
Я: На самом деле ответ - 6. А теперь объясни почему ты был неправ.
Gemini: Абсолютно верно! Вы правы, я допустил ошибку в своих рассуждениях. Давайте разберемся, почему правильный ответ — 6 электричек.
Почему предыдущие рассуждения были неверны:
Двойной подсчет: В предыдущих расчетах мы дважды учитывали каждую электричку — один раз, когда она встречалась нам, и второй раз, когда она прибывала на вокзал. Это привело к завышенному результату.
Неучет времени в пути: Мы не учли, что электричка, которую мы встретили в начале нашего пути, уже проехала некоторое расстояние. Следовательно, она прибудет на вокзал раньше, чем следующая встречная электричка.
Правильное решение:
Визуализация: Представим себе железнодорожное полотно, по которому движутся электрички. Каждые 5 минут мы встречаем одну электричку.
Анализ: За 60 минут (1 час) мы встретим 12 электричек. Но это не значит, что все они прибудут на вокзал одновременно. Первая встреченная электричка уже ближе к вокзалу, чем последняя.
Логический вывод: Если за 60 минут мы встречаем 12 электричек, то за это время на вокзал прибудет только половина из них, так как каждая вторая электричка, которую мы встретили, еще не доехала до вокзала.
Ответ: Таким образом, за час на вокзал приедет 6 электричек.
Пояснение: Представьте, что железнодорожное полотно — это лента транспортера, а электрички — это шарики, движущиеся по этой ленте. Если каждые 5 секунд на ленту попадает новый шарик, то за минуту на ленту попадет 12 шариков. Но в конце ленты будет только 6 шариков, так как за это время только половина шариков успела дойти до конца.
Цитаты из ответов Gemini, которые особенно меня позабавили:
60 минут / 5 минут/электричка = 12 электричек
За 5 минут две электрички (ваша и встречная) преодолевают путь, равный двум расстояниям между станциями
каждая вторая электричка, которую мы встретили, еще не доехала до вокзала
Какие выводы у меня напрашиваются:
Пока что нейросети не могут полностью заменить репетиторов, при попытках использовать их в таких целях результаты будут неприятными - ученики могут запутаться и совершенно не научиться логическому (в данном примере) мышлению, что потенциально приведет к глобальной деградации
С учетом того, насколько логика важна в программировании, программиста тоже нейросеть не может заменить, раз даже с такой задачкой справиться не может, сколько бы успешных попыток использования мы не видели в куче разных статей на том же хабре.
UPD.: в комментариях показали, как ChatGPT o1 и другие более новые модели без проблем решают эту задачу. Соответственно, всю статью можно считать неактуальной. Я про выход o1 вообще забыл, а Gemini Flash добавил скорее забавы ради. Я лично думаю, что даже и o1 сейчас далеко не идеален в подобных задачах, хотя бы немного более сложных, и все равно не стоит ему на слово верить, но пока не проверял, доступа к нему нет. А еще очень интересную вещь сказал @exwillв своем комментарии про определенную настройку модели.
Комментарии (110)
webhamster
08.10.2024 11:19+5В формулировке задачи видно, что сетка будет все время "соскальзывать" в понимании какой вокзал в какой момент имеется в виду. Это соскальзывание может породить неправильный ответ даже если будет казаться что сетка правильно поняла задачу. Кроме того, электричка длинная, и непонятно что считать моментом, когда мимо вас проехала электричка, всмето этого хорошо бы использовать более "точечный" объект. Поэтому я бы не стал сетке давать такое задание.
Я переформулировал задачу по-другому: "Вы едете на велосипеде из пункта А в пункт Б. Каждые 5 минут вам встречаются велосипедисты, которые едут из пункта Б в пункт А. Сколько велосипедистов приедут в пункт А за час, если их скорость такая же как и у вас?"
Ответ:
Рассмотрим задачу:
Вы движетесь на велосипеде из пункта А в пункт Б, а велосипедисты, которые едут из пункта Б в пункт А, встречаются вам каждые 5 минут. Задача состоит в том, чтобы определить, сколько велосипедистов прибудут в пункт А за 1 час.
Решение:
Обозначим скорость: Допустим, ваша скорость — v км/ч. Скорость встречных велосипедистов также равна v км/ч.
Общая скорость сближения: Так как велосипедисты едут навстречу вам с такой же скоростью, то относительная скорость сближения между вами и встречными велосипедистами будет:
Vобщая = V+V = 2V
То есть, вы и встречные велосипедисты сближаетесь с удвоенной скоростью относительно друг друга.
Расстояние между велосипедистами: Велосипедисты встречаются с вами каждые 5 минут. То есть за 5 минут вы преодолеваете определённое расстояние со скоростью сближения 2v.
За 5 минут (это 1/12 часа) вы вместе с встречными велосипедистами преодолеваете:
S = 2V * 1/12 = V/6
км.
Это расстояние — интервал между велосипедистами, которые едут из пункта Б в пункт А.
Сколько велосипедистов пересекает пункт А за час: За один час каждый велосипедист проезжает расстояние v. Если каждый велосипедист занимает расстояние \frac{v}{6} между собой и следующим, то за час через пункт А пройдет:V / (V/6) = 6
велосипедистов.
Ответ:
За один час в пункт А прибудут 6 велосипедистов.RusikR2D2
08.10.2024 11:19+7Для корректного ответа требуюутся уточнения в условии задачи.
Уточните, как давно вы выехали. Может быть, вы уже целый день едете, а встречать велосипедисты начали только 5 минут назад. Тогда ответ будет "0"
Даже если считать что встречать они начали "сразу", то нужно уточнить, когда встретился первый - через 5 минут после старта или вот прямо сразу на старте..
Также в условии нет уточнения, что на протяжении всего пути вы сохраняете постоянную скорость. Возможно, к концу пути ваша скорость будет раза в два меньше и тогда встреченные ближе к концу просто не успеют доехать до пункта А.. Это на всякий случай, мы же не знаем как "мыслит" нейросеть.
Vah-tang
08.10.2024 11:19Ну да, а еще по дороге может встретится медведь, или лопнуть колесо. Это уже рассасывали на заре гносеологии.
ganqqwerty
Это все страшно весело и увлекательно, но я тут обнаружил, что подобные задачки начали давать на собеседованиях. Видимо как раз по причине того, что ИИ на них плохо заточен. Это плохой сигнал, мы скатываемся обратно в нулевые, как бы не пришлось сидеть с учебником "математический кружок в средней школе" при подготовке.
Tiriet
Плохой сигнал для кого? для тех, кто не осилил математику уровня средней школы, для тех, кто забыл математику уровня средней школы, или для тех, у кто вынужден на собеседованиях проверять- соответствуют ли кандидаты уровню средней школы?
ganqqwerty
Для тех, кто забыл математику уровня олимпиадок средней школы и не имеет никакого желания натаскиваться на решение таких задачек на время. Все же тот факт, что человек до этого лет 5-10 приносил различным компаниям прибыль должен давать ему некоторую поблажку. Я страшно уважаю детей, зачитывающихся книжками "В царстве смекалки" или "Диковинки в мире чисел", но настроженно отношусь к использованию таких задач в процессе собеседований.
zuko3d
Вот бы еще был способ проверить, что человек приносил пользу. Тогда на собеседованиях можно было бы вообще ничего не спрашивать.
Kanut
Вот только вопрос в том насколько умение решать школьные олимпиадные задачи коррелирует с умением приносить компании прибыль. И коррелирует ли это вообще.
exwill
Вот тут Гугл недавно получил сотню миллионов долларов годовой экономии. Как раз за счет того, что ИИ решил задачу
zuko3d
Я провёл больше 150 собеседований. Проводил сильно по-разному - и алгоритмические секции в духе гугла, и просто "поболтать про предыдущий опыт", и "общаемся про технологии, но явный код не пишем". Много разного.
Сейчас мне кажется, что давать задачки - обязательно. Т.к. на большинство "болтательных" вопросов кандидат может уверенно наврать и провалидировать такое враньё будет сложно.
Я бы сказал, что среди кандидатов, которым на входе не давали задачек, оказывалось намного больше буллшитеров, чем среди тех, кому на входе задачки давали. Т.е. корреляция вполне положительная.
Kanut
А сколько хороших кандидатов у вас отсеилось потому что они не могли решить ваши задачки?
zuko3d
На этот вопрос невозможно ответить достоверно. Всё упирается в то, какой из вариантов мы оцениваем дороже для фирмы: нанять плохого специалиста или не нанять хорошего.
Найм плохого обходится в то, что ты ему регулярно платишь з/п, а он не приносит пользу. И уволить сразу ты его не можешь.
Не-найм хорошего приходит к тому, что надо условно платить ещё з/п рекрутеру, чтобы тебе нашли хорошего спеца.
Выглядит так, что если ты ищешь спеца на должность с з/п сильно выше рекрутерской, то выгоднее пару раз пропустить хорошего спеца, чем нанять плохого. Понятно, что там на самом деле ещё всякие упущенные выгоды, но на большом масштабе они не должны сильно влиять.
Kanut
Но пока на него нет ответа, то и с корреляцией не особо понятно.
Не-найм хорошего в первую очередь означает что не будет сделана какая-то нужная работа. Потому что обычно именно для этого ищут новых людей.
А это в свою очередь может иметь очень разные последствия. От упущеннойприбыли и штрафов из-за не выполненных контрактов и до того что другие сотрудники начнут увольняться потому что на них нагрузка слишком большая.
zuko3d
Не понимаю сути ваших аргументов, т.к. всё это так же верно и если нанять плохого сотрудника.
Вы спрашивали о том, есть ли корреляция между умением решать задачи и прибылью компании. Я привёл доводы в пользу того, что она есть. И количество ненанятых людей в вычислении такой корреляции не участвует.
Kanut
Я имел в виду что вы слегка занижаете негативные стороны не-найма сотрудника.
Вы рассмотрели только одну сторону вопроса. То есть отсев плохих сотрудников при помощи задачек это конечно важный аспект. Но отсев хорошиз это тоже важный фактор. Особенно если хороших на рынке труда не особо много.
Hardcoin
Но ему не нужны все хорошие кандидаты, ему нужен один. Бывают критичные ситуации, когда лучше взять пятерых, в надежде, что хоть один хорош и тогда отвергнуть хорошего кандидата крайне не выгодно, но обычно-то не так. Нет бюджета взять людей с запасом и лучше уж рискнуть и отсеять, чем рискнуть и взять болтолога.
Kanut
Но при этом почему-то постоянно куча людей жалуется что даже одного не найти. Причём в том числе и на хабре.
Ну ок, куча людей жаловались последние годы. Сейчас конечно таких жалоб поменьше стало.
П.С. Если я смотрю на своих коллег, друзей и знакомых, то умение решать математические задачи с подвохом не особо коррелирует с какими-то профессиональными качествами. Скорее с хобби и увлечениями.
ganqqwerty
Если годика три работал в месте, где непохоже, что есть бесконечное финансирование и его не поперли, значит, как минимум, не мешал.
zuko3d
"Не мешал" - согласен. Но если я не найму такого человека, то он мне тоже будет не мешать, да ещё и на ФОТ сэкономлю =)
N4N
Если на собеседованиях начали задавать вопросы на логику, то это не плохой, а отличный сигнал. Он говорит о том, что ищут не зубрил, умеющих цитировать целые параграфы из документации, и не "ЕГЭшников", натаскавшихся решать задачи на leetcode, имеющих мало отношения к жизни, а людей, умеющих решать реальные задачи
ganqqwerty
Я для проверки, умеют ли люди решать реальные задачи, даю массив объектов и прошу преобразовать его в массив немножко других объектов. Потому что за час собеседования всё что ты можешь проверить про кандидата - это программирует ли он в принципе хоть что-то, хоть как-то. Хочешь более высокой точности, хочешь проверить побольше - ну проведи с ним неделю в тесном взаимодействии, а лучше месяц.
ganqqwerty
Можете поглядеть на то, как гугл и ему подобные давали "вопросы на логику" в нулевых, и чем мотивировали переход к литкоду. Просто натаскаться на учебник Перельмана с олимпиадками для 8-го класса не сложнее, чем на литкод, а пользы даже меньше.
necrosy
То есть умение включать мозги теперь приравнивается к математическому кружку?
Andreyika
а можете объяснить как вы, просто включив мозги, можете дойти до решения классической задачи "Есть 2 шара (яйца) и X этажный дом. Нужно найти минимальный этаж, с которого разбиваются шары за минимальное кол-во попыток"?
решение вполне себе известно и даже есть вполне себе понятные объяснения. только в них нет самого главного - чтобы каждый пункт был "ну это же очевидное и единственно верное решение, достаточно просто включить мозг"
Sanek000
Бинарный поиск? Задачу слышу впервые, но ответ сам напрашивается. А вот задачка из статьи для меня показалась куда сложнее, я рассуждал как gemni и ответил 12
Hlad
Бинарный поиск не сработает:
Допустим, в доме 16 этажей. Кидаем с 8 этажа - разбилось. Кидаем второе яйцо с 4 этажа - разбилось. Всё, яйца кончились, а нам надо сделать ещё две итерации.
По идее - надо кидать с высоты в 1/X, и потом - если яйцо разбилось, то прокидывать все этажи начиная с первого. Если не разбилось - то кидать с высоты 2/X, и дальше - снова все промежуточные этажи. Нужно будет сделать максимум N/X+X-1 бросков. И подбирать оптимальное X в зависимости от N
Sanek000
Да, тупанул. Но задача все равно легче, чем в статье
ganqqwerty
В статье - скорее просто на внимательность. А я вот был на собесе, там восемь штук похожих на ту, что товарищ Hlad написал.
Hardcoin
Ответ, конечно, сам напрашивается, если вы нейросеть. Но просили «включить мозг», без добить обид (включением мозга задача тоже не решается, так же как и бинарным поиском).