Category: it

Category was added automatically. Read all entries about "it".

Как умение математиков работать с абстракциями выглядит в глазах программистов

— Мы можем ввести натуральные числа при помощи операции «следующее число», которую обозначим как s. Таким образом, любое натуральное число может быть записано как s(s(s(…))). Это называется «аксиоматика Пеано»…

— А зачем это всё нужно?

— Ну как же?! Это подводит аксиоматическую основу под всю математику, поэтому это очень важно. Кроме того, благодаря таким концепциям у людей развивается абстрактное мышление, позволяющее им находить общее между самыми разными вещами. Без этой способности человек не сможет стать чем-то кроме посредственности…

— Ок. А знаете, вы сейчас ввели натуральные числа как Iterable-объект. Вообще говоря, со списком чего угодно тоже ведь можно так же.

— Вот сейчас вы какую-то херню сказали. Совсем математику не понимаете.



Слишком умён для теста Тьюринга

К вопросу о том, может ли GPT притворяться человеком — например, чтобы пройти тест Тьюринга.

На мой взгляд, самое палево сейчас не в том, что он слишком тупой, чтобы быть человеком, а наоборот в том, что он — слишком умный. Кому-то отдельному в чём-то отдельном он может проиграть, причём даже с треском, есть какие-то задачи, которые он решает неправильно, однако если брать в среднем, его способности лучше, чем у любого человека. Поскольку отдельный человек тоже может неправильно решать задачи, проигрывать другому человеку в конкретных знаниях и умениях, но вряд ли хоть кто-то реально способен за пять секунд выполнить задание типа «напиши стихотворение на тему разбора грамматики турецкого языка в рамках гегелевской диалектики». То есть, да, смысл стихотворения, возможно, будет не самым лучшим из возможных, но, really, пять секунд? Вы за пять секунд хотя бы одну строку такого стихотворения придумаете?

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

Ну Ок. В плане быстроты вопрос решается тупо замедлением в выдаче ответа. Причём его даже можно автоматизировать и сделать реалистично выглядящим, если сам же GPT попросить перед ответом сообщать, сколько времени, по его предположениям, реальный человек отвечал бы на этот вопрос, и сделать задержку при выдаче ответа на вот это вот время. Но что делать с нечеловеческими способностями в плане правильности ответов?

Я попробовал дать Claude вот такую вводную, перед этим проверив, что без вводной он довольно неплохо предсказывает результаты выполнения кода на Пайтоне.

Collapse )

Почему математика не даёт глубокого понимания математики

…ну, во всяком случае, в том виде, в котором её обычно преподают.

…а программирование, таки да, даёт.

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

По этой причине у программиста само собой, без специального приложения к тому сил, вырабатывается интуитивное понимание того, что такое «полная инструкция».

Да, такая инструкция ещё и «абсолютно точная»: ведь компьютер может выполнить оную лишь единственным способом. Не вступая в философские дискуссии о том, как нам что определить, — ведь оно уже заранее определено и однозначно читается.

Collapse )

Как жить без теории множеств

Я много раз наблюдал, как граждане, которым когда-то внушили, будто «можно только так — иначе математика останется без обоснований», недоумевали: а какая альтернатива-то? Что нам делать с числами разных сортов и свойств, если мы не считаем их элементами каких-то бесконечных множеств, состоящих друг с другом в мистических математических соотношениях?

Мне, как программисту со стажем, конечно, такое каждый раз было очень странно слышать. Тут ведь ничего даже придумывать не надо — оно придумано уже до нас и используется для практики так широко, как теории множеств даже не снилось.

Но, видимо, этим тайным знанием обладают только программисты, да и то не все, а остальные этот вариант никак не могут отыскать в тайных закромах интернетов, поэтому я всё-таки нашёл в себе силы поделиться со страждущими ответом на вопрос «а как ещё-то?».

Так вот, вы-таки удивитесь, однако практически любая программа обрабатывает некие данные. И даже если язык программирования делает вид, что типов у элементов, блоков и всех данных целиком в нём нет, на самом деле они всё равно есть — просто не всегда показываются программисту в явном виде.

Однако несколько проще рассматривать такой язык, где это всё-таки в явном виде указывается: какой тип у каждой хреновины, которую ты каким-то образом обрабатываешь в программе.

Collapse )

Беседы с неконтактными туземцами

Вообще, конечно, мне беседы с «математиками», ставшими таковыми благодаря Самому Лучшему в Мире Образованию, которые сами про программирование и его концепции вообще ничего не знают, а потому уверены, что никто из программистов тоже ничего про математику даже и не слышал, и лишь по этой причине утверждает, что с программированием она не связана, или критикует какие-то математические концепции за высосанность из пальца, расплывчатость и подозрительную близость к чистой философии, напоминают вот что.

Встречает программист тридцать лет назад ещё неконтактного туземца, и туземец ему тут же сообщает, что самое клёвое, что придумало человечество — это вызов духов предков при помощи раскладывания костей. Духи предков иногда, по слухам, даже помогают. А если вам не помогают, то только потому, что вы про вызов оных с использованием костей мало знаете.

Что? Про такое вы тоже где-то читали? Так там было неправильно, всё наврали — спросите моего шамана, он вам правильную версию расскажет. Что? С вашей точки зрения он просто произносит какой-то набор слов? Это вы просто тупой и не понимаете. Мало его слушали — побеседуйте с ним подольше и попробуйте уверовать в его аксиомы.

Чего вы прицепились-то к реальному миру: вызов духов предков — это абстрактное духовное занятие, не пытайтесь его запятнать этими своими экспериментами. Быть может, именно поэтому вам духи предков и не благоволят: приняли бы то, что говорит шаман, не спрашивая «с хрена ли?», тут бы дело и пошло.

Мне, вон, духи предков очень даже помогают — я до подмастерья шамана уже дослужился. Глядишь, потом вообще шаманом стану. Почёт, уважение, вот это вот всё.

Collapse )

Продолжаю следить за математическими экспертами

В этот раз на огонёк зашёл математический просветитель, которому очень не понравилась фраза «строка — это прямо сразу число, поскольку каждый символ можно считать цифрой, коих будет столько, сколько символов в алфавите».

«Нет, вы никак не сможете доказать однозначность такого кодирования», — сообщил просветитель, презрев написанный прямо по соседству элементарный факт того, что любую строку можно записать в файл, а потом этот файл прочитать обратно в строку, — «Вот, например, "x + y" не получится закодировать в такой системе — ведь в алфавите нет буквы "+"».

Эксперта не смутило даже то, что он прямо сам прямо в этом своём комменте каким-то чудесным образом написал «букву +», несмотря на то, что её «нет в алфавите».

Хотя, не знаю, быть может, те буквы, которые есть в алфавите, компьютер рассылал в виде байтов по сети, но вот для передачи «буквы +» использовался живой человеческий гонец, который быстро-быстро обежал всех читателей его коммента и нарисовал у них на экранах маркером эту отсутствующую букву. Можно только гадать, каким предстаёт мир в воображении носителей Самого Лучшего в Мире Образования.

Ещё один эксперт поделился своим знанием устройства функций в языках программирования. В частности, тем, что «+» никак не может быть не статичным методом класса. «Ведь для вызова нестатичного метода нужен экземпляр!», — авторитетно сообщил он, — «поэтому как можно вызвать что-то типа "1.+(2)"?!».

То, что в спецификации целого ряда языков — Scala, Kotlin, Python и т.д. — это вписано прямым текстом, не показалось эксперту убедительным. Ведь такого по его экспертному заключению быть не может, а кто такие авторы спецификаций и разработчики языков, чтобы это оспаривать?

Тем более, видимо, в математике нет понятия «экземпляр» — разве же может оно быть где-то ещё, если там тоже типа речь про математику?

«+ — это не функция, а оператор», — настаивал эксперт, через раз сбиваясь с «оператора» на «операцию», поскольку это наверно одно и то же, — «Потому что, ну это, статичный метод там должен быть», — утверждал он, видимо, совершенно случайно позабыв, что прямо только что функцией по его версии это вообще быть не могло, а метод — это частный случай функции, — «статичный метод, который оператор, потому что там, бывает, написано "operator". Или не написано, но всё равно оператор. А просто методом оно быть никак не может — не пишите мне этой вашей ерунды. Я этих ваших языков не знаю, но нутром чую».

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



О бесполезных черепашках

Это неизбежно: при попытке выдумать язык программирования как бы «для обучения» в жанре «рисуем текстовыми командами для курсора» всегда будет получаться концептуально один и тот же язык. Наиболее известная реализация которого называется «Brainfuck». Этот, правда, в реальности не про рисование, но зато тоже чтобы задолбаться.

И знаете почему получается так?

Потому что «учителя информатики» и «авторы учебников по программированию для детей», которые предполагают таким способом чего-то объяснить, никогда не писали полезных программ, и в результате не представляют, что и зачем делают реальные программисты.

Это не обучение программированию, это — обучение жизни в полной страданий, лишений и преодолений вымышленной параллельной вселенной.

Злой параллельной вселенной — поскольку что в этих языках, что в построенной на их основе программе по якобы обучению компьютерным технологиям и программированию основные силы тратятся на наяривание на то, чего в реальности все пытаются избежать.

Collapse )

«Просто языковая модель»

Эта «просто языковая модель» не перестаёт поражать. В частности, она оказывается способна почти правильно (без одного необходимого импорта, который вставляет после указания «чо-то не работает») написать универсальный qsort на Scala для произвольной коллекции. Должен отметить, это не каждый программист знает, как это написать.

Но мало того. Она потом правильно предсказывает, что будет, после вызова этой функции для рандомно сгенерированного мной списка десяти чисел, сообщённого ей. Именно предсказывает: к компилятору Scala и среде выполнения она не подключена.

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

Но это ещё я могу понять. А вот чего я не могу понять, как эта просто языковая модель правильно предсказывает результат вызова qsort(List(1, 20, 300) ++ sorted), где sorted — это отсортированный список из предыдущего предсказания.

Если это не логическое мышление, то вообще неясно, что называть «логическим мышлением».

А теперь затаите дыхание:

println(qsort(List(1, 20, 300) ++ sorted).indexOf(48))

(sorted к этому моменту = List(15, 19, 29, 47, 48, 53, 54, 60, 61, 91) — это было в контексте предыдущего разговора)

Таки да, правильно предсказано 6.

И она при этом по шагам объясняет, как она всё это предсказала — что там получается на каждом шаге, почему, и т.п.



ChatGPT

Наконец-то дошли руки до того, чтобы пощупать сабж. В текущих условиях это сделать было непросто — нужен телефон для регистрации, но не все страны подходят. Однако с этим помогли проживающие за границей друзья.

И я пощупал.

И должен констатировать, что пинцет вам, проклятые кожаные мешки.

Я вообще-то ждал, что будет сильно лучше, чем всё то, что я видел ранее. Однако я не ожидал, что настолько лучше.

ChatGPT, по ходу, пройдёт тест Тьюринга уже прямо сейчас, а через год он будет проходить этот тест в ста попытках из ста. Он не просто как человек, он — как человек-гений. Если тест Тьюринга в дальнейшем он и будет иногда проваливать, то в противоположную сторону: слишком умный для человека.

Collapse )

Генераторы и не такая уж сводимость

Правда ли, что «актуальная бесконечность» — это просто такое упрощающее рассуждения о бесконечностях предположение? Ну, типа, если мы его введём, то будет всё то же самое, что было с потенциальными бесконечностями, но только проще?

Предположительно, нет. Поскольку из актуальной бесконечности может последовать существование незримых сусликов. Ведь достаточно ввести утверждение о том, что каких-то сущностей «больше», чем натуральных чисел, чтобы тут же из этого сделать вывод, что среди них с неизбежностью есть какие-то сущности, на которые сослаться принципиально нельзя, как и где-либо их обнаружить, поскольку для них просто не существует конечного текста, хоть как-то их идентифицирующего.

Однако сие скорее относится к философии, нежели к практике. В практике принципиально необнаружимое себя никак и никогда не проявит, считаем ли мы его «существующим» (в том странном смысле, который в этом случае мы приписали слову «существовать») или же не считаем (поскольку решили остаться с прежним смыслом, который подразумевает обязательную потенциальную возможность предъявить то, что сочли существующим).

А вот что будет отличаться в плане практики.

На практике мы можем создать некий контейнер, который будет хранить в себе какие-то заранее созданные элементы, но вот контейнер с бесконечным количеством заранее созданных элементов мы создать не можем.

Collapse )