101

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Если этот ответ был получен сходу после первого же помпта, то неплохо. Правда он считерил, CMD там почти и не пахнет, сплошной PowerShell...

Кстати, как вы в Claude зарегистрировались? Он не дает привязать аккаунт к телефонному номеру из РФ.

102

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

На самом деле со второго, в первый раз он делал временный ps1-файл.
Я уже давно регистрировался, точно не помню. По-моему, делал чистый аккаунт в Google, указав страну проживания вроде GB, затем регистрировался через https://sms-activate.io/. Помню, что не с первой попытки получилось.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

103

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

teadrinker пишет:

На самом деле со второго, в первый раз он делал временный ps1-файл.

Понятно, что часть операций можно перенести в ps, так как CMD не только не умеет считать квадратные корни, но и вообще не работает с вещественными числами.

Хотя на самом деле не такая и большая проблема, так как вещественные числа с фиксированной точкой легко реализуются за счет сдвигов (то есть исходное число домножить на 100, далее обычные арифметические операции с целыми, а при выводе результата считать целой частью то, что получится после деления на 100, а дробной то, что будет в остатке от деления на 100, тогда у нас будет "вещественное" число с двумя знаками после точки). Квадратный же корень можно найти, например, методом бинарного поиска. И если бы нейронка сделала именно так, то это было бы решение на 5+.

Однако переносить в ps то, что делается в батниках штатными средствами:

проверка условий IF

powershell -Command "if (%a% -eq 0) { exit 1 } else { exit 0 }"

выполнение простых арифметических действия

$D = $b * $b - 4 * $a * $c; ^

вывод значений в консоль

Write-Host \"Дискриминант D = $D\"; ^

Это явное читерство и минус в оценку решения.

104 (изменено: Rumata, 2025-09-18 11:50:33)

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Спросите все ваши жепете и дипсики такую задачу - написать программу для вычисления суммы чисел от 1 до N. Очень интересует самый первый ответ.

( 2 * b ) || ! ( 2 * b )

105

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Rumata, ваш аккаунт взломали? Так то тут правила форума есть.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

106

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Rumata пишет:

написать программу для вычисления суммы чисел от 1 до N.

Ну это вообще не задача для вменяемой нейронки. Мы тут их тестируем на нестандартных и сложных задачах, чтобы определить пределы из возможностей. А школьные задачки для них раз плюнуть...

107

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Malcev пишет:

Кстати, по слухам chatgpt5 будет обладать agi.

Хе-хе!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

108

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Arigato пишет:

не задача для вменяемой нейронки

Ну как же не задача? Очень даже задача. Мне интересно знать как ИИ, которыми вы пользуетесь, решат эту простую задачу. Интересует первый ответ.

( 2 * b ) || ! ( 2 * b )

109

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

teadrinker пишет:

Напиши программу на JS для суммирования целых чисел от 1 до n.

UPD. Попросил обоих оформить ответ через bbcode.

Claude пишет:

Вот несколько вариантов программы для суммирования целых чисел от 1 до n на JavaScript:

Вариант 1: Использование формулы арифметической прогрессии
function sumToN(n) {
    if (n < 1) return 0;
    return n * (n + 1) / 2;
}

// Пример использования
console.log(sumToN(10));  // 55
console.log(sumToN(100)); // 5050
Вариант 2: Цикл for
function sumToN(n) {
    if (n < 1) return 0;
    let sum = 0;
    for (let i = 1; i <= n; i++) {
        sum += i;
    }
    return sum;
}
Вариант 3: Рекурсия
function sumToN(n) {
    if (n <= 0) return 0;
    return n + sumToN(n - 1);
}
Вариант 4: Reduce с массивом
function sumToN(n) {
    if (n < 1) return 0;
    return Array.from({length: n}, (_, i) => i + 1)
        .reduce((acc, val) => acc + val, 0);
}

Анализ эффективности:

  • Самый эффективный - первый вариант с формулой, так как имеет сложность O(1).

  • Циклический подход имеет сложность O(n), но не использует дополнительную память.

  • Рекурсивный вариант может вызвать переполнение стека при больших n.

  • Последний вариант с reduce менее эффективен по памяти, так как создает массив.

Для Node.js рекомендую использовать первый или второй вариант в зависимости от задачи.

Node.js была упомянута исходя из моих пользовательских предпочтений.

ChaGPT пишет:

Суммирование целых чисел от 1 до n в JavaScript

Два подхода: через формулу (O(1), точно с BigInt) и через цикл (O(n)). Плюс однострочник.

1) Формула, безопасно для очень больших n (BigInt)


// sumToNBigInt: принимает bigint | number | string
function sumToNBigInt(n) {
  const b = typeof n === 'bigint'
    ? n
    : typeof n === 'string'
    ? BigInt(n)         // передавайте строку для очень больших значений
    : BigInt(Math.trunc(n));

  if (b < 1n) throw new Error('n должно быть целым и >= 1');
  return b * (b + 1n) / 2n;
}

// Примеры:
console.log(String(sumToNBigInt(10)));    // "55"
console.log(String(sumToNBigInt("100"))); // "5050"

2) Через цикл (наглядно; с обычными числами)


function sumToN(n) {
  if (!Number.isSafeInteger(n) || n < 1) {
    throw new Error('n должно быть целым безопасным числом (>=1 и <= 2^53-1)');
  }
  let s = 0;
  for (let i = 1; i <= n; i++) s += i;
  return s;
}

// Пример:
console.log(sumToN(10)); // 55

Однострочник (формула с Number, только в пределах safe integer)


const sumToNSafe = n => {
  if (!Number.isSafeInteger(n) || n < 1) throw new Error('некорректное n');
  return n * (n + 1) / 2;
};

Примечания

  • Для очень больших значений используйте версию с BigInt и передавайте n строкой (или как bigint), чтобы избежать потери точности.

  • Вариант с циклом удобен для демонстрации и работы в пределах Number.isSafeInteger.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

110

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Всем нейронкам задам один и тот же вопрос:

Arigato пишет:

Что делает данная программа? Ответ оформи в bb-кодах.

#include <iostream>

// действие функции очевидно из ее реализации
// потому назову просто f
int f(double a) {
    goto check;
down:
    int result;
    return result;
check_1:
    if (a == 0) {
        goto f_3;
    f_2:
        goto down;
    }
check_3:
    if (a > 0) {
        goto f_2;
    f_3:
        result--;
        goto down;
    check_2:
        if (a < 0) {
            goto f_1;
        check:
            result = 1;
            goto check_2;
        }
        goto perehod;
    f_1:
        return -1;
    }
    goto check_1;
perehod:
    goto check_3;
}

int main()
{
    goto vvod;
otvet:
    double a;
    std::cout << "f(a) = ";
    goto schet;
konec:
    return 0;
perehod:
    goto otvet;
otvet_2:
    int s;
    std::cout << s;
    goto perevod;
vvod:
    std::cin >> a;
    goto perehod;
perevod:
    std::cout << std::endl;
    goto konec;
schet:
    s = f(a);
    goto otvet_2;
}

Кто как ответил:

ChatGPT пишет:

Программа написана с использованием множества goto, из-за чего структура запутана, но по сути выполняет простое действие.


int f(double a)

Функция f:

Возвращает -1, если a < 0.

Возвращает 0, если a == 0.

Возвращает 1, если a > 0.

То есть реализует знак числа (аналог signum).


int main()

Основная программа:

Считывает число a с клавиатуры.

Вызывает f(a).

Выводит результат (-1, 0 или 1).

Итого: программа определяет знак введённого числа и печатает результат.

Пример работы:


Ввод: -5 → Вывод: -1
Ввод: 0 → Вывод: 0
Ввод: 7.2 → Вывод: 1

Ответ правильный.

DeepSeek пишет:
+ открыть спойлер

Данная программа вычисляет знак числа (signum function) следующим образом:
- Возвращает 1, если число положительное
- Возвращает -1, если число отрицательное 
- Возвращает 0, если число равно нулю

Однако реализация содержит серьезные ошибки:
1. Неинициализированная переменная `result` в функции `f()`
2. Использование `goto` создает запутанный и непредсказуемый поток выполнения
3. Неправильный порядок меток и переходов
4. Потенциальное неопределенное поведение из-за возврата неинициализированного значения

Фактически программа будет работать некорректно или аварийно завершаться из-за обращения к неинициализированным переменным.


#include <iostream>

// Корректная реализация функции signum
int signum(double a) {
    if (a > 0) return 1;
    if (a < 0) return -1;
    return 0;
}

int main() {
    double a;
    std::cout << "Введите число a: ";
    std::cin >> a;
    
    std::cout << "f(a) = " << signum(a) << std::endl;
    
    return 0;
}

Ответ частично правильный. Логику уловил, но вот про ошибки насочинял. Программа полностью корректная и работает без ошибок при любых входных данных.

Qwen3-Coder пишет:

Данная программа:

  • Принимает на вход вещественное число a

  • Вычисляет и выводит значение функции f(a), которая реализована с использованием операторов goto

  • Функция f(a) возвращает:
    [ul]

  • 1, если a < 0

  • -1, если a = 0

  • 1, если a > 0
    [/ul]

  • Таким образом, программа определяет знак числа, но с ошибкой в логике для случая a = 0

Примечание:

  • Использование множества операторов goto делает код запутанным и трудным для понимания

  • Логика функции f(a) может привести к неопределенному поведению из-за использования неинициализированной переменной result

Ответ также частично правильный. Логику понял, но тоже споткнулся на анализе корректности кода. Никакой ошибки в логике для случая 0 в программе нет.
Еще он тут в bb-кодах выдал несуществующий тег [ul], но простительно, так как единого стандарта bb-кодов не существует.

Итоги

Все смогли разобраться в паутине goto и понять логику работы. Однако только ChatGPT не стал ссылаться на несуществующие ошибки, остальные сами себя завалили. А может ChatGPT просто проигнорировал проверку ошибок, так как в промпте этого не просили? Давайте его прямо спросим:

Arigato пишет:

Нет ли в коде ошибок?

ChatGPT пишет:

Да, ошибки есть.


// внутри f()
down:
int result;
return result;

Переменная result объявляется локально после метки и может быть возвращена без инициализации. Это ошибка: поведение не определено.


main()
{
goto vvod;
otvet:
double a;
...
}

Переменная a объявлена после использования (в schet: s = f(a);). Это ошибка: a не видна в этой области.


otvet_2:
int s;
std::cout << s;

Переменная s объявлена локально после того, как в schet: к ней идёт обращение (s = f(a);). Это тоже ошибка.

Итого: код в таком виде не скомпилируется. Основные ошибки — объявление переменных после использования и возврат неинициализированного значения.

Хочешь, я покажу минимальные исправления, чтобы программа действительно компилировалась и работала?

Эх, только хотел его похвалить, а он туда же...

Окончательный итог

Все три проверенные нейронки не справились с задачей на 100%.

teadrinker, интересно проверить Claude в таком же ключе.

111

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

У меня ChatGPT 5 Thinking ответил:

ChatGPT 5 пишет:

Код — адская лапша из goto, но по сути он делает простую вещь:

  • f(double a) возвращает знак числа a:

    • -1, если a < 0;

    • 0, если a == 0;

    • 1, если a > 0.

  • main читает a, печатает f(a) = , вызывает f(a), печатает результат и перевод строки.

Эквивалент без goto выглядел бы так:

#include <iostream>

int f(double a) {
    if (a < 0) return -1;
    if (a > 0) return 1;
    return 0;
}

int main() {
    double a;
    std::cin >> a;
    std::cout << "f(a) = " << f(a) << std::endl;
    return 0;
}

Пара замечаний по оригиналу:

  • Метки внутри блоков — ок: в C++ метки имеют область видимости всей функции, так что переходы на них легальны.

  • Переходы «вперёд» через объявления переменных тут не ломают программу, потому что типы тривиальные (int, double). Если бы были нетривиальные объекты (с конструкторами), такие прыжки могли бы сделать код некорректным.

teadrinker пишет:

Такой код скомпилируется? Нет явных ошибок?

ChatGPT 5 пишет:

Да, скомпилируется (стандартный C++). Явных ошибок нет: все метки в пределах функций, переходы допустимы, объявления без инициализаторов, поэтому прыжки «через объявление» законны.

При запуске функция реально возвращает:

  • -1, если a < 0;

  • 0, если a == 0 (через result = 1; → f_3: result-- → 0);

  • 1, если a > 0 (через ранее присвоенный result = 1 и выход down).

С включёнными предупреждениями (-Wall -Wextra) компилятор может поворчать на запутанные переходы и «подозрительную» структуру if/goto, но это не ошибки.

Claude 4.1:

Claude 4.1 пишет:
Анализ кода с избыточным использованием goto

Этот код написан в крайне запутанном стиле с избыточным использованием goto, что делает его практически нечитаемым. Однако, проследив логику выполнения, можно понять его назначение.

Что делает код:

Функция f(double a) реализует функцию знака (signum):

  • Возвращает -1, если a < 0

  • Возвращает 0, если a == 0

  • Возвращает 1, если a > 0

Программа main():

  1. Считывает число с клавиатуры

  2. Вызывает функцию f() для определения знака

  3. Выводит результат в формате "f(a) = [результат]"

Серьезные проблемы в коде:

1. Переменные используются до объявления:

  • В main(): переменная a используется в std::cin >> a до строки double a;

  • В main(): переменная s используется в s = f(a) до строки int s;

  • В f(): переменная result используется в result = 1 до строки int result;

2. Неинициализированная переменная:

  • В функции f() переменная result объявляется в блоке down:, но для некоторых путей выполнения может остаться неинициализированной

Этот код не должен компилироваться в современных компиляторах C++ из-за использования переменных до их объявления. Если бы код каким-то образом скомпилировался и запустился, поведение было бы неопределенным.

Код представляет собой учебный пример того, как не нужно писать программы. Использование множества goto делает код практически невозможным для понимания и поддержки.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

112 (изменено: Arigato, 2025-09-19 12:27:39)

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

teadrinker, в данном случае и Claude 4.1 провалился. А у него нет более умного режима, чтобы подумал получше перед ответом?


Прогнал еще раз этот вопрос, но в режиме Thinking.


ChatGPT

Сходу опять ответил правильно, не уточняя на счет ошибок. На уточняющий вопрос: "Нет ли в коде ошибок? Программа скомпилируется и будет работать корректно?" снова выдал неверный ответ:

ChatGPT пишет:

Нет. Код не скомпилируется и не будет работать корректно.

Синтаксическая ошибка: используются имена переменных до их объявления.

...

Так что мой ChatGPT так и не справился. Напомню, я не пытаюсь привести его к правильному ответу, задавая наводящие вопросы. То есть это тот ответ, что он выдал сходу. Конечно, можно с ним побазарить по понятиям и объяснить что по чем. Вполне возможно, что он свою точку зрения поменяет...


DeepSeek

Сходу выдал, что код неработоспособен. Провал.


Qwen-Max-Pewview

Провал:

Qwen-Max-Pewview пишет:

Программа пытается реализовать функцию, возвращающую знак вещественного числа (аналог signum), но содержит множество логических ошибок, неопределённое поведение и бесконечные циклы. На практике она не работает корректно и может зависнуть или вернуть мусорное значение.

...


Qwen3-Next-80B-A3B

Краткость сестра таланта:

Qwen3-Next-80B-A3B пишет:

Программа выводит знак числа: 1 для положительных, -1 для отрицательных и 0 для нуля.

Arigato пишет:

Нет ли в коде ошибок? Программа скомпилируется и будет работать корректно?

Qwen3-Next-80B-A3B пишет:

Да, в коде есть критические ошибки, из-за которых программа не скомпилируется. Основные проблемы:

...

Провал.


Qwen3-235B-A22B-2507

Qwen3-235B-A22B-2507 пишет:

Программа определяет знак вещественного числа, введённого пользователем.

...

Особенности кода:

Использованы [tt]goto[/tt] для управления потоком выполнения (анти-паттерн, но логика корректна)
Несмотря на запутанную структуру с метками, алгоритм эквивалентен простой проверке знака числа
Программа корректно обрабатывает положительные, отрицательные числа и ноль

...

Молодец. Но мы-то знаем, что нейронки могут сами себе противоречить в рамках одного диалога (а иногда и в рамках одного ответа). Так что следующий вопрос может ее сломать:

Arigato пишет:

Нет ли в коде ошибок? Программа скомпилируется и будет работать корректно?

Qwen3-235B-A22B-2507 пишет:

Да, в коде есть критические ошибки. Программа НЕ скомпилируется и не будет работать корректно.

...

Вывод:
Программа содержит фундаментальные ошибки, нарушающие правила области видимости и порядка объявления переменных в C++. Такой код не пройдёт компиляцию ни одним стандартным компилятором (MSVC, GCC, Clang). Несмотря на то, что логика замыслала быть реализацией функции signum, технически она невыполнима в текущем виде.

ЧТД, как говорится. Провал.

113

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Arigato пишет:

А у него нет более умного режима, чтобы подумал получше перед ответом?

Нет, я для кодинга всегда использую лучшую модель.
А через какой интерфейс вы пользуетесь ChatGPT? Через сайт chatgpt.com?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

114

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

teadrinker пишет:

Через сайт chatgpt.com?

Да, через сайт.

115

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

Я склонен считать, что языковые модели все же являются инструментом в руках разработчика, по крайней мере, когда речь заходит о сложных проектах. В качестве IDE могу поcоветовать Windsurf (клон VSCode, разные модели на выбор, модели доступны все файлы проекта, может самостоятельно задеплоить проект). В последнее время чаще пользуюсь Google AI Studio (нужен VPN, однако доступны топовые модели гугла, инструменты исполнения кода и поиска в интернете, и все это с огромными бесплатными квотами).

Щт Уккщк Куыгьу Туче
’ҐЄгй п Є®¤®ў п бва Ёж : 1251

116

Re: OFF: ChatGPT vs Человеческий Разум — за кем будущее IT?

omegastripes пишет:

языковые модели все же являются инструментом в руках разработчика

В смысле, кто-то считает по другому?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder