Как стать автором
Обновить
269.09

Математика *

Царица всех наук

Сначала показывать
Порог рейтинга

Мысли вслух о том, какие дети проявляют к математике способности. О памяти.

Рассмотрим только одну ее характеристику - объем.

Для того, чтобы быть успешным в математике к концу школы, нужно примерно в 7-м классе слезть с мышления алгоритмами, начав разрывать их по самым неустойчивым шагам и перейти к мышлению отношениями. Писал об этой смене в этом посте. Здесь приведу предельно упрощенный пример. Можно воспринимать примеры "2 + 3 = 5", "2 = 5 - 3" и "3 = 5 - 2" как разные, и тогда знак равно здесь - знак действия, а можно как одно отношение между тремя числами, и тогда знак равно здесь означает тождество. Очевидно, что второй вариант более гибкий и, самое главное, позволяющий расширяться. Кстати, про знак равно - это отдельная песня...

Сделать этот переход можно только при условии правильной подготовки к этому переходу. Как минимум, не делая ошибок. Но я хотел про объем памяти. Если ученику сложно запоминать, то он быстро накопит алгоритмов до состояния, когда ими будет сложно управлять и ему потребуются отношения для возможности что-то делать дальше. Плохо, так как скудный объем данных (разнообразие алгоритмов) приведет к скудным отношениям. Если ученик с легкостью запоминает большие объемы информации, то тоже плохо. Так как он очень не скоро придет к моменту, когда он сам почувствует их ограниченность, и к этому моменту сильно прикипит к использованию алгоритмов и адаптируется к их применению в любых ситуацих, например, за счет эмоциональности, манипулирования и т.д.

Получается, что есть какой-то оптимум объема памяти? Интересно....

Теги:
+2
Комментарии0

Так получилось, что после 17-ти лет работы в ИТ я ушел в обучение школьников математике. В ИТ я работал программистом и потом системным аналитиком. Ушел потому что просто стало интересно. С падением в доходе. Естественно, постоянно делал себе различные вспомогательные сервисы, ведь, невозможно переставить что-то проектировать или программировать ))). Постепенно стало настолько интересно "как все устроено в обучении мозга человека", что поступил на мехмат МГУ в очную аспирантуру на кафедру "методика преподавания математики". Очень, кстати, полезно. Если поступать туда для того, чтобы что-то узнать/сделать.

Еще работая в ИТ, я постоянно проводил собеседования системных аналитиков и продуктовых менедежров. По 1-3 собеседования каждый день в течении нескольких лет. Обнаружил существование корреляции между "способностью строить объектную модель на лету" и "перспективностью кандидата". Конечно, это не единственная такая корреляция, но одна из самых стойких.

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

Пришел вот к такому заключению: нужна тренировка чтения со схематизированием прочитанного на лету. Начиная с простейших конструкций из объектов и простейших однотипных связей между ними. Постепенно увеличивая типы используемых связей: наследование (для детей общее-частное), ассоциация со стереотипами, аггрегация и т.д. Соответственно, увеличивая и сложность конструкций. Особенно важно делать тексты такими, чтобы чтобы приходилось переделывать структуру по мере прочтения. Рекомендую!

Теги:
+1
Комментарии0

Итак, группа исследователей создала платформу MathArena, где планируют делиться отчётами о сравнении нейросетей в различных математических проблемах. Для начала множество моделей уже протестировали на AIME 2025 I, олимпиаде, прошедшей в четверг.

Что такое AIME? American Invitational Mathematics Examination — элитное математическое состязание, проводимое с 1983 года. Существует две версии теста — AIME I и AIME II, но каждый участник может пройти только одну (хотя ИИ-моделям повезло, и вскоре появятся результаты для второй части). Олимпиада состоит из 15 задач, сложность которых возрастает.

Каждую модель тестировали по четыре раза на каждой задаче, вычисляя средний балл (столбец Accaccuracy) и финансовую стоимость вычислений (столбец Cost). Для удобства использовалась цветовая кодировка: 🟩зелёный — задача решена в более чем 75% случаев; 🟨жёлтый — успех в 25–75% случаев; 🟥красный — модель справилась менее чем в 25% попыток. Щелчком по клетке можно открыть условие задачи, ход рассуждений модели в каждом из четырёх подходов и финальные ответы.

🏆o3-mini-high от OpenAI показала впечатляющий результат — 80% решённых задач при очень низкой стоимости вычислений.
🔹DeepSeek-r1, лидер среди опенсорс-моделей, набрал 65%, а его дистиллированные версии тоже продемонстрировали достойные результаты. (Кстати, уже пробовали запустить его в нашем агрегаторе нейросетей?)

Можно заметить, что дистилляты хоть и уступают своим полным аналогам, но не так уж сильно: сжатие DeepSeek-r1 с 671 млрд параметров до 70 или даже 14 млрд привело к падению эффективности в обоих случаях всего на 15%. То есть урезанная модель становится заметно легче, но при этом сохраняет бóльшую часть своих возможностей.

К сожалению, Claude 3.5 Sonnet, модель июня 2024-го, оказалась на дне рейтинга. Однако её сильная сторона явно не в этом — огромное контекстное окно (200 000 токенов) делает модель отличным инструментом для программирования. Кодеры подтверждают, что она хорошо генерирует длинные и сложные фрагменты кода.

Пока что в тестах не замечено семейства Phi. Phi-4 набирает 80%+ на сложнейших бенчмарках, таких как MATH, уверенно обходя Gemini Pro и GPT-4o-mini. Посмотрим, добавят ли авторы сайта её в дальнейшем🤔

Тем временем пользователи X забили тревогу и решили проверить честность олимпиады, задействовав свежачок от OpenAI — Deep Research. Цель? Выяснить, не мелькали ли эти задачки где-то в Сети раньше и, соответственно, не могли ли их решения заранее попасть в обучающие данные моделей. Ведь если так, то модели получали преимущество.

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

Задача № 1: найти сумму всех целых оснований b > 9, для которых одно число делится на другое в системе счисления b. Аналогичное задание всплыло на Quora. Однако и различия существенны: на форуме просто рассматривались все возможные значения b, удовлетворяющие делимости, а в олимпиадном варианте — только те, которые больше 9. Это заметно сужает поиск и усложняет задачу.

Задача № 3: найти остаток от деления количества возможных распределений мороженого между игроками с заданными ограничениями. Deep Research нашёл похожую концепцию: обе задачи связаны с разбиением числа на несколько частей с учётом ограничений. Но здесь тоже есть нюансы: в олимпиадной версии обязательно, чтобы каждый из трёх вкусов достался хотя бы одному игроку, причём количество игроков, выбравших каждый вкус, подчиняется неравенству c > v > s. Более того, порядок распределения важен, что добавляет ещё один уровень сложности.

Итог. Похожие? Да. Идентичные? Нет. Найти аналоги почти любой задачи в интернете реально, если искать достаточно хорошо. Так что сказать, что модели видели точно такие же задачи, нельзя.

Теги:
+4
Комментарии1

Увеличиваем точность БПФ. Изобретаем алгоритм для Гитарного Тюнера и оценки точности пения нот вокалистами. Это анонс статьи в разработке. Подписывайтесь на мой профиль на Хабре, чтобы не пропустить статью. Или присоединяйтесь к моей "телеге". Кратко: точности и быстродействия классического БПФ не хватает для точной и быстрой оценки частоты сигнала. Ищем и изучаем другие алгоритмы. Да, я знаю много китайских маленьких приборчиков и прищепок на гитару с весьма точной настройкой, но интересно разобраться как это достигается. Напишите в комментариях какие более точные алгоритмы определения частоты сигнала вы знаете? (я уже нашел несколько, сейчас тестирую, смотрите изображение ниже) На графиках амплитудный спектр суммы 7 синусоид с близкими частотами, интервал наблюдения 0.1 секунды, частота дискретизации 22050 Гц, как видите классический БПФ ошибается и даже не все синусы видит, а альтернатива дает меньшую ошибку и все синусы увидела. Вертикальные красные линии это реально находящиеся в тестовом сигнале синусоиды. Их частоты написаны над верхней границей графиков.

Теги:
+3
Комментарии36

Нашел интересное видео - визуализация всех основных алгоритмов сортировки на Python

Забавно, но софт написан не на matplotlib, a на PyGame! https://github.com/Ctoic/Algorithm-Visualizer-Using-pygame

Я тоже попробовал графики рисовать на PyGame (рисую звук в реальном времени, осцилограф): https://habr.com/ru/articles/879786/

Теги:
+6
Комментарии2

Я бывший ИТ-шник, а сейчас обучаю математике школьников частным образом. Т.е. я репетитор. Репетиторы - зло. Как быть?

У меня есть основания полагать, что:

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

  • если ученик не умеет учиться, то ему существенно не поможет ни крутой репетитор, ни прекрасный школьный учитель - прогресс будет так себе, если, конечно, он в процессе не научится учиться и останется достаточно времени до события Х (ЕГЭ / поступление в лицей / то, что нужно).

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

Что делать? Учить учиться. Как?

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

  2. В средней школе накапливайте алгоритмы. Ученик должен почувствовать, что алгоритмический подход становится неудобен. И что нужно переходить к объектам. Сравнивал это на Хабре с функциональным программированием и ООП.

  3. В старшей школе связывайте объекты (т.е. теорию), для этого вырабатывате привычку у ученика, чтобы при использовании любого теоретического факта в процессе решения задачи он задавал себе вопрос: "А я могу обосновать этот факт?". И если не может, то пробовать обосновать. А если не получается обосновать, то сформулировать вопрос учителю. Это даст невероятное ускорение процессу обучения. Но такое поведение контринтуитивно, и над ним нужно работать. Года два назад делал сборник правильных образовательных привычек.

А иначе траты ресурсов и времени и скромный результат.

Теги:
+5
Комментарии7

Для точности ваших математических библиотек принимайте «Ульп». «Ульп» — и тесты не страшны!

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

Для этого достаточно договориться о единице измерения. Расстояние между соседними числами обозначается как 1 ульп (ulp — unit in the last place). Относительно него и будем оценивать погрешность вычисления математической функции. Поделим расстояние от результата до эталона на то, что является одним ульпом — то есть на расстояние от эталона до соседнего числа той же точности. Стандарт libm требует, чтобы ошибка не превышала 0,5 ульпа с учетом округления. 

Мы договорились о единицах измерения. Но остался еще один вопрос: с чем же мы сравниваем результаты? Откуда брать эталон в квазибесконечной точности? Здесь помогут системы компьютерной алгебры — прикладные программы для символьных вычислений и числовых операций произвольной точности.

Из таких систем ученые особенно любят Maple или Scilab, инженеры — Mathcad или Matlab, а разработчики — Sollya, поскольку эта библиотека имеет удобный C-интерфейс и ее можно вызывать прямо из тестов libm.

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

В своей статье эксперт YADRO по разработке ПО Валерия Пузикова раскрывает, как устроено большинство тестов стандартных математических библиотеках и почему они не всегда работают. А главное: как одним тестом и без громоздких формул полностью покрыть код математической функции.

Читать статью →

Теги:
+3
Комментарии0

А что вообще такое аудит искусственного интеллекта? Это процесс, который проверяет, соответствуют ли система ИИ и её алгоритмы безопасным, правовым и этическим стандартам.

Подробнее о требованиях к аудиту рассказал Петр Владимирович Ганелин, советник по стратегии АНО «НТЦ ЦК». Он выступал на экспертном клубе «Аудит безопасности систем ИИ», который организовала ИТ-компания «Криптонит».

Какими качествами должна обладать надёжная система ИИ?

  • Подотчетность и прозрачность.

  • Объясняемость. Важно, чтобы пользователь понимал цель и возможное влияние системы ИИ.

  • Обеспечение приватности. Система ИИ должна гарантировать пользователю анонимность, конфиденциальность и контроль за данными.

  • Достоверность и надежность. Систему ИИ надо постоянно тестировать и проверять, точно ли она работает так, как было задумано.

  • Безопасность. Система ИИ не должна приводить к состоянию, в котором человек подвергается опасности.

  • Устойчивость. Это способность поддерживать регулярную деятельность и предотвращать, защищаться и восстанавливаться после атак.

А на чем именно фокусируется аудит ИИ?


Обычно аудиты обращают особое внимание на:

  • ввод данных для обучения (источник, качество и достоверность);

  • модели и алгоритмы ИИ;

  • общее использование системы ИИ, с кем взаимодействует система, какие вопросы решаются с ее помощью (уровень принятия решений, их контроль уполномоченным человеком).

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

  • незрелые или отсутствующие методики (фреймворки), специфичные для аудита ИИ;

  • ограниченные прецеденты (малый опыт проведения аудитов подобного рода);

  • неоднозначность определения ИИ (отличие от экспертных систем);

  • быстрое изменение моделей (дообучение, федеративное обучение);

  • отсутствие сертифицированных аудиторов ИИ.

Доклад Петра Владимировича Ганелина «Требования к системам ИИ и организация аудита» был на V встрече экспертного сообщества по криптографии и большим данным, которую организовал «Криптонит» при поддержке Музея криптографии. Дискуссия была посвящена теме аудита безопасности систем ИИ.

Смотрите запись встречи
📺 на Rutube
📺 в VK видео

Теги:
0
Комментарии0

У меня есть ученики по математике (и программированию). Вчера один из учеников 9-го класса неожиданно задал вопрос, попав даже не "в десятку", а существенно точнее )). Вот что он мне написал (я сократил, сохранив смысл):

"Я привык уже все обосновывать. Но я никак не могу "обосновать" сам процесс поиска решения в задачах. Т.е. можно ли как-то "обоснованно" догадываться до способа решений задачек. Вот если решение найдено, то его можно обосновать по алгоритму. А можно ли также алгоритмически искать решения различных математических задач?"

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

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

Я ответил ученику примерно так: "Искать решение - это искусство. Обосновывать найденное решение - это ремесло. Учиться учиться - это, как правильно организовывать ремесло, чтобы совершенствоваться в искусстве". Веду канал в телеграме для учеников и их родителей об умении учиться математике и, например, что значит, с моей точки зрения, уметь учиться, можно прочитать в этом моем посте.

Теги:
+5
Комментарии9

Ещё раз о количестве способов набрать сдачу в n рублей из заданного набора монет/купюр

 Вот известная задача: «Имеется неограниченное количество монет достоинством 1, 2, 5 и 10 рублей. Определить, сколькими способами можно ими выдать сдачу в n рублей».

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

Возможно, эта идея будет полезна в других задачах.

Итак.

При n = 7 все варианты следующие:

1 + 1 + 1 + 1 + 1 + 1 + 1

1 + 1 + 1 + 1 + 1 + 2

1 + 1 + 1 + 2 + 2

1 + 2 + 2 + 2

1 + 1 + 5

2 + 5

 Среди них можно выделить те, в которых минимальным слагаемым является 1. Их – 5. В оставшемся шестом варианте минимальным слагаемым является 2. Вариантов, в которых минимальным слагаемым является 5 и 10, в данном случае нет.

При n = 10 все варианты следующие (без знака +):

1111111111, 111111112, 11111122, 1111222, 112222, 111115, 11125, 1225, 22222, 55, 10,

то есть

количество вариантов с минимальным слагаемым 1 равно 8;

количество вариантов с минимальным слагаемым 2 равно 1;

количество вариантов с минимальным слагаемым 5 равно 1;

количество вариантов с минимальным слагаемым 10 равно 1.

 Подумав (😊), можем сказать, что при n = 11:

· количество вариантов с минимальным слагаемым 1 будет таким же, как общее число всех вариантов для n = 10 (так как разность 11 – 10 не превышает 1);

· количество вариантов с минимальным слагаемым 2 будет равно сумме количеств с минимальными слагаемыми 2, 5 и 10 для n = 9 (так как разность 11 – 9 не превышает 2);

· количество вариантов с минимальным слагаемым 5 будет равно сумме количеств с минимальными слагаемыми 5 и 10 для n = 6  (так как разность 11 – 6 не превышает 5);

· количество вариантов с минимальным слагаемым 10 будет равно такому же количеству для n = 1 (так как разность 11 – 1 не превышает 10).

 Приведённые рекуррентные зависимости применимы для всех значений n, но с некоторыми исключениями – при n = 1 количество вариантов с минимальным слагаемым 1, при n = 2 количество вариантов с минимальным слагаемым 2, при n = 5 количество вариантов с минимальным слагаемым 5 и при n = 10 количество вариантов с минимальным слагаемым 10 будет равно 1 (в перечисленных случаях соответствующие слагаемые появляются впервые).

Допустим, что максимальное значение n равно 99.

В программе, реализующей описанную идею для такого случая, можно использовать двумерный массив из 109 строк и пяти столбцов (10 начальных строк массива являются условными для рекуррентного расчёта значений при n = 1..10).

Вся программа на так называемом «школьном алгоритмическом языке» (система программирования КуМир):

алг
нач цел таб м[-9:99, 1:5], цел n, j
  | Нули, в том числе в фиктивных строках   

нц для n от -9 до 99
    нц для j от 1 до 5
      м[n, j] := 0
    кц
  кц

  | Расчёты
  нц для n от 1 до 99
    если n = 1
      то
        м[n, 1] := 1
      иначе | Рекуррентная зависимость
        м[n, 1] := м[n - 1, 5]
    все
    если n = 2
      то
        м[n, 2] := 1       иначе
        м[n, 2] := м[n - 2, 2] + м[n - 2, 3] + м[n - 2, 4]
    все
    если n = 5
      то
        м[n, 3] := 1
      иначе
        м[n, 3] := м[n - 5, 3] + м[n - 5, 4]
    все
    если n = 10
      то
        м[n, 4] := 1
      иначе
        м[n, 4] := м[n - 10, 4]
    все
    | Последний столбец
    м[n, 5] := м[n, 1] + м[n, 2] + м[n, 3] + м[n, 4]    
  кц
  | Вывод всех значений
  нц для n от 1 до 99
    вывод нс, n, " | ", м[n, 5]
  кц
кон

 Конечно, вместо массива из 109 строк можно использовать 10-строковый массив и после расчёта значений для очередной строки переписать массив, отбросив «хвостовую» строку.

 Спасибо.

Теги:
+2
Комментарии2

Что такое «сверхвыразительные» нейросети?

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

Проблема точного представления многомерных функций через одномерные ещё в 1900 году была сформулирована немецким математиком Давидом Гильбертом. Она известна как «13-я проблема Гильберта о суперпозициях непрерывных функций».

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

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

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

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

Причины сделать нейросети сверхвыразительными:

  • академический интерес;

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

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

Теги:
0
Комментарии0
2041 оттенок несерого, или Как впихнуть невпихуемое.
2041 оттенок несерого, или Как впихнуть невпихуемое.

Легко обозначить на диаграмме четыре цвета! И 16 — не проблема. Все 256 оттенков серого, пожалуй, человеческий глаз уже не различит. А как различить тысячу и более?

На помощь приходят они! Палитры «в стиле тепловизора». Как же их получить?

Попробуем сначала тривиальное решение. Повторим один канал от 0 до 255 четыре раза подряд, а при помощи другого — различим эти повторы. Бррр, и некрасиво, и отличающиеся на единичку цвета часто похожи друг на друга меньше, чем отличающиеся на 256.

Нет, нужно что-то непрерывное! Давайте сначала перейдём от чёрного к зелёному, потом — к красному, потом — к белому, потом — к синему? Уже лучше! Но всё-таки белый светлее синего, а зелёный — красного, и хотя синие звёзды таки горяче́е — синий цвет зрение воспринимает как холодный…

Да, вот теперь лучше! Чёрный — синий, синий — зелёный, зелёный — красный, красный — жёлтый, жёлтый — белый! Прекрасные дополнительные диапазоны таились в комбинациях нескольких каналов сразу! А можно ли ещё больше?

От чёрного до серого — 128, от серого до светло-синего — 128, от него до чисто синего — 128, потом до зелёного 256 и потом до сине-зелёного, и только от него уже к красному, и потом от него сначала к пурпуру, а только от пурпура — к жёлтому и потом — к белому! Хорошо, но светло-синий светлее синего, а между сине-зелёным и красным — явный грязно-тёмный провал.

Ладно, пусть будет от чёрного — к серому, от него — к синему, от него — к светло-синему, а от него уже — к зелёному, а в переходе от сине-зелёного к красному пусть сначала быстро разгорается красный и медленно затухает сине-зелёный, а потом — наоборот! Две тысячи уникальных оттенков, плавно нарастающих по «психологической температуре»!

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

	int c,x=0;
	for (c=0;c<192;c++,x++)
	{
		Test[y][x][0]=c;
		Test[y][x][1]=c;
		Test[y][x][2]=c;
	}
	for (c=0;c<192;c++,x++)
	{
		Test[y][x][0]=191-c;
		Test[y][x][1]=191-c;
		Test[y][x][2]=192+c/3;
	}
	for (c=1;c<128;c++,x++)
	{
		Test[y][x][0]=c;
		Test[y][x][1]=c;
		Test[y][x][2]=255;
	}
	for (c=1;c<256;c++,x++)
	{
		Test[y][x][0]=127-c/2;
		Test[y][x][1]=127+c/2;
		Test[y][x][2]=255-c;
	}
	for (c=1;c<256;c++,x++)
	{
		Test[y][x][0]=0;
		Test[y][x][1]=255;
		Test[y][x][2]=c;
	}
	for (c=1;c<256;c++,x++)
	{
		int Br = 127-abs(c-128);
		Test[y][x][0]=c  +Br/4;
		Test[y][x][1]=255-c +Br/4;
		Test[y][x][2]=255-c +Br/2;
	}
	for (c=1;c<256;c++,x++)
	{
		Test[y][x][0]=255;
		Test[y][x][1]=0;
		Test[y][x][2]=c;
	}
	for (c=1;c<256;c++,x++)
	{
		Test[y][x][0]=255;
		Test[y][x][1]=c;
		Test[y][x][2]=255-c;
	}
	for (c=1;c<256;c++,x++)
	{
		Test[y][x][0]=255;
		Test[y][x][1]=255;
		Test[y][x][2]=c;
	}

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

А гость нашей программы — профессиональная логарифмическая палитра, цельнотянутая из какого-то научного журнала то ли конца 80-х, то ли начала 90-х, когда тепловизоры только завоёвывали свою экологическую нишу (увы, авторство по этой причине вряд ли удастся установить, она очень долго переходила из рук в руки). Обратите внимание, как в ней идут цвета: первые несколько отличаются очень сильно, а последние — на какую-то несчастную единичку в одном разряде одного канала. Вот она — работа профессионалов!

А какие палитры для приведения одноканального HDR (с неподвластным глазу SNR) к трёхканальному обычному изображению (с подвластным глазу SNR) знаете вы?

Теги:
+2
Комментарии6

Винтик, Шпунтик и Кубик Рубика

Я давно подозревал, что между задачей про Винтика и Шпунтика и кубиком Рубика есть определенная связь. И вот только сейчас придумал простую аналогию. Представьте, что у нас есть грань размера 3x3 и нам надо покрасить 9 ячеек в три цвета. 3 - в красный, 3 - в желтый, и 3 - в зеленый. Сколько существует раскрасок при которых ни одна строка и ни один столбец не закрашены одним цветом?

Картинка ниже дает примеры возможных и невозможных раскрасок

У задачки есть три уровня сложности

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

  2. Посчитать то же самое число аналитически (то есть "на бумажке"🧐)

  3. Очевидно, что задача обладает некоторым набором симметрий. Иными словами перестановка строк (эта группа изоморфна S3) переводит решение в решение. То же самое с перестановкой столбцов (тоже S3). Также "перекрашивание" (красные в желтые, желтые в зеленые и тп) дает еще одно S3. Ну и наконец транспонирование матрицы или поворот на 900 (2700) также переводит решение в решение. Вопрос "со звездочкой" - сколько существует орбит решений относительно действия этой группы?

    Маленькая подсказка - можно воспользоваться теоремой Редфилда-Пойа. Но окончательного ответа я с ее помощью получить не смог...😒

Теги:
Всего голосов 7: ↑7 и ↓0+12
Комментарии0

Ближайшие события

Шахматная доска и набор фишек могут стать вычислительным устройством типа калькулятора. Блогер Джон Нейпир назвал свой проект «Арифметика расположения, выполняемая на шахматной доске». Этот метод использования фишек на шахматной доске основан на двоичных и основных алгебраических свойствах. С помощью только фишек на шахматной доске можно выполнять умножение, деление и находить квадратные корни, включая квадратные корни иррациональных чисел.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Новогодняя интеллектуальная разминка с Cloud.ru 🦾

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

Вы — Агент K, работающий в «Департамента мостов и тоннелей»  («Люди в черном» / Men-in-Black). У вас 24 часа, чтобы обучить большую языковую модель для общения с аркелианцами. Сколько GPU NVIDIA A100 нужно для вашего суперкомпьютера, чтобы успеть обучить модель за это время и спасти Землю? Создайте формулу для вычисления машинного времени суперкомпьютера (в GFLOPS или в GPU-часах), затрачиваемого на обучение модели не хуже чем Llama 2 70B (с возможностью применения для оценки времени обучения других моделей). 

Время обучения Llama 2 — 1720320 GPU-часов, для обучения модели использован датасет с 2 триллионами токенов. Другие необходимые данные возьмите в интернете. 

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

Варианты ответов оставляйте в комментариях 👇 В пятницу — 10 января — Павел Бузин (@pbuzin) — эксперт Cloud.ru по AI и машинному обучению, раскроет правильный ответ под этим постом.

И оставляйте реакции и предложения — как вам такой формат, что можно улучшить? 

Вам может быть интересно:

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии5

Задача на зубок: считаем орешки

В магазине полезных перекусов продаются на развес орехи:

  • Арахис — 500 руб/кг,

  • Миндаль — 1000 руб/кг,

  • Кешью — 1200 руб/кг,

  • Грецкий — 800 руб/кг,

  • Фундук — 1100 руб/кг,

  • Фисташки — 1400 руб/кг.

Менеджер проанализировал спрос и предлагает продавать упаковки с миксом орехов в таких вариантах:

  • арахис, миндаль, кешью;

  • миндаль, фундук, фисташки;

  • кешью, фундук, грецкий.

Любая упаковка микса — по 200 грамм. В каждом миксе орехи взяты в пропорции 2:1:1, где первый — это самый дешёвый орех в данной смеси.

Менеджер предлагает установить цену 200 руб за упаковку микса. Какой микс наиболее выгодно продавать по такой цене, а какой — наименее выгодно?

Ответ опубликуем в комментариях! Больше задач найдёте в бесплатном тренажере «Основы математики для цифровых профессий».

Теги:
Всего голосов 3: ↑1 и ↓2-1
Комментарии5

Новогодний марафон интеллектуальных задачек 🦾

Привет, Хабр! Поздравляем всех с наступившим Новым годом!

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

Представьте, что вы — Бен Кэмпбелл, гениальный студент MIT и герой фильма «Двадцать одно». Профессор Микки Роса предлагает вам решить задачу про смену двери (также известную как Парадокс Монти Холла). Вот только дверей у вас будет 4, и только за одной из них приз. Выгодно ли вам изменить решение после того, как вы предложите открыть одну дверь, а Микки Роса откроет вам другую?

Варианты ответов оставляйте в комментариях 👇 9 января Павел Бузин (@pbuzin) — эксперт Cloud.ru по AI и машинному обучению, раскроет правильный ответ под этим постом.

А еще пишите — над задачами в каких областях вам будет интересно «поломать голову» в будущем?

Вам может быть интересно:

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Следующий год будет необычным — математики доказали этот факт научным способом.

Смотрите сами:

2025 — это квадрат суммы чисел от 1 до 9: (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9)² = 2025

2025 также является суммой кубов чисел от 1 до 9:

1³+ 2³+ 3³+ 4³+ 5³+ 6³+ 7³+ 8³+ 9³ = 2025

А ещё (20 + 25)² = 2025

Это вам не астрология: в следующий раз такое повториться через ТЫСЯЧУ лет — в 3025 году.

Теги:
Всего голосов 24: ↑23 и ↓1+29
Комментарии2

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

Существует интернет-сообщество «эзотерические языки программирования». К нему в 1997 году присоединился американский студент Бен Олмстед. Он задался целью создать «адски сложный» для понимания язык и вскоре придумал Malbolge, названный так в честь восьмого круга ада из «Божественной комедии» Данте Алигьери. Про него рассказываем дальше.

В чём же сложности Malbolge? Их много. Чтобы сразу не было скучно, Бен отошёл от двоичной логики, заменив её на троичную. Подобным образом ранее поступили создатели советской ЭВМ «Сетунь», но совершенно из других побуждений.

Перед запуском в интерпретаторе программа на Malbolge выполняет инструкцию crazy (crz). Эта команда считывает из памяти два числа, сравнивает их в троичной системе и записывает результат в память. Операция повторяется до тех пор, пока выделенная интерпретатором память не закончится.

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

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

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

Malbolge получился настолько крышесносным, что сам автор не осилил написать на нём даже «Hello World!». Вместо этого Бен сделал упрощённую версию языка Dis и программу на нём, которая печатала одну букву: «H».

Чтобы реализовать простейший Hello World на Malbolge, группе энтузиастов потребовалось два года, LISP и генетические алгоритмы, перебирающие варианты расшифровки команд. Вот как выглядел итоговый листинг:

(=<# 9]~6ZY327Uv4-QsqpMn&amp;+Ij"'E%e{Ab~w=_:]Kw%o44Uqp0/Q?xNvL:H%c# DD2^WV>gY;dts76qKJImZkj

Упоминание языка Malbolge есть в сериале «Элементарно» на CBS. В одном из его эпизодов преступник роняет записку с кодом на Malbolge, а Холмс расшифровывает его и получает подсказку.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Наглядное доказательство того, что a2b2 = (a + b)(ab).

Софи Жермен писала: «Говорят, что алгебра – это всего лишь записанная геометрия, а геометрия – это всего лишь диаграммная алгебра».

Теги:
Всего голосов 18: ↑16 и ↓2+19
Комментарии2

Вклад авторов