Category: it

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

О точности математиков

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

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

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

Не менее круто развиты и двойные стандарты, применяемые почти на автомате. Например, весьма нередко встречаются рассуждения вроде:

  1. Возьмём в качестве текущего результата число 1.


  2. Применим к текущему результату функцию f.


  3. Применим к текущему результату функцию g.


  4. Будем повторять 2 и 3 бесконечно много раз.


  5. Финальным результатом будет что-то, что выдала функция f в этот момент.


Collapse )

Икс не равен самому себе

Что-то давно не было про диалектику. И про программирование. Сейчас я экстренно наверстаю.

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

«Я равен самому себе — а иначе как же меня друзья-то опознают? Однако я не равен самому себе, поскольку не влезаю в те штанишки, которые носил в десять лет. Шах и мат, формальнологисты!».

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

Тем не менее, я готов поделиться с общественностью ещё более крышесносящим примером — прямо сразу на формальнологическом языке программирования Java.

Collapse )

Понятно, почему почти никому не понятно

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

Как-то раз я собрался с силами и прочитал четыре книги/длинные статьи о теореме Гёделя, а также посмотрел три отечественные лекции по ней и одну зарубежную.

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

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

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

Collapse )

Сделай сам себе язык

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



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

Аналогичное заодно является основой символьных вычислений, в том числе — построения систем, которые могут, например, решать уравнения или выводить производные в символьной форме.

При всех огромных возможностях языка Wolfram и приделанной к нему Mathematica меня все эти годы раздражало то, что в плане определения функций там совершенно адский синтаксис.


Читать на сайте «XX2 век»




Новой эпохе — новые автоматизации

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

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

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

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

Штука в том, что можно для эксперимента что-то менять прямо в тексте функции с моделью, однако так не сохраняются предыдущие варианты, а потому тяжело сравнивать. И куда-то упорядоченно выписывать тоже тяжело.

Collapse )

(no subject)

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

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

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


Кое-что о «загрузке сознания»

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

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

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

И всё бы ничего, однако есть тонкий нюанс: молекулы в теле человека обновляются. И нейронная сеть в его мозге, которая как раз и несёт в себе и опыт человека, и его личность, и даже вот это ощущение «взгляда изнутри», тоже обновляется. Причём в ней не только сменяются молекулы — ещё и одни нейронные связи рассасываются, а другие, наоборот, прорастают.

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

Collapse )

Минутка формационно–языкового шовинизма

Язык C++ разработал датчанин. Дания — монархия с развитым институтом частной собственности.

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

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

Несмотря на всё это, при неосторожности тот, кто написал код объекта, может порушить всю внешнюю среду, даже не взаимодействуя с какими-то другими объектами. К счастью, всем остальным про это будет довольно тяжело узнать, — это частный бизнес объекта и его разработчика всё-таки.

Язык Scala разработал швейцарец. Швейцария — конфедеративная республика с сильно развитой на всех уровнях прямой демократией. При этом права низовых групп людей весьма обширны и даже частный бизнес очень на многое вынужден напрямую спрашивать разрешение у местных жителей.

Collapse )

Недосети

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

1. Мы берём какую-то магическую штуку «нейросеть», которая с самого начала много всего умеет, но никто не знает, чего именно.

2. Мы ей показываем какие-то данные, которые она запоминает — примерно как Эксель в файле.

3. После этого мы, ничего не проверяем, поскольку а что тут можно проверить-то? Если повезёт, то она всё правильно запомнила, а если не повезёт — неправильно.

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

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



Вы все не смогёте

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

От себя добавлю: «а также кунг-фу, карате и множеству других страшных слов».

Про алгебры Ли я мало что знаю, а потому не поручусь, однако основным положениям теории категорий любого психически здорового человека можно обучить где-то так за час. Быть может, за день, а если он совсем давно ничему не учился, то за месяц, из которого 28 дней уйдут на то, чтобы вернуть ему уверенность в себе, навык сосредоточения и некоторые другие полезные умения, напрямую к теории категорий не относящиеся.

На обучение основам программирования на C# с полного нуля уйдёт месяц–два. А где-то так через год упражнений можно уже идти устраиваться на работу.

Да-да, любому: оно всё такое сложное исключительно в воображении.

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

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