Ответы пользователя по тегу Математика
  • С чего начать изучение математики если прогулял 11 лет школы но хочешь понимать сложные алгоритмы в программировании?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    А чё понимать то там? Это алгоритмическое расстояние, его формулой не посчитаешь, для него нет каких-то адекватных свойств или чего-то такого. Банальный алгоритм, созданный для быстрого нечёткого поиска по словарям. Это не рокет-сайнс и не криптография.

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

    Возможно потребуются разделы геометрии, особенно если хотим работать с 3D-объектами.

    Большинство можно получить из учебника по математики для 10-11 классов, из общей литературы мог бы рекомендовать "Конкретную математику" Кнута, Поташникова, а также "Алгоритмы. Построение и анализ" Кормена, Лейзерсона. Весьма полезным может стать "Искусство программирования" Кнута, но она на любителя.

    И да. Учим технический английский. Иначе будет больно.
    Ответ написан
    Комментировать
  • Как обеспечить избыточную целостность?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Эм, так вам избыточные коды. Рида-Соломона, например. Или каскадные, они более гибкие.
    Ответ написан
  • Как рассчитать стоимость валюты?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Никак. В том смысле, что каждая пара живёт своей жизнью и зависит от спроса и предложения. Другими словами, вполне возможно такое, что купив один доллар, на который потом купить один евро, мы получим неравное кол-во валюты, если напрямую купим евро. Это связано с огромным количеством причин, начиная от огромной волатильности, заканчивая банальными комиссиями, мешающие спекулянтам выравнивать пропорции достаточно точно.
    Ответ написан
    Комментировать
  • Что такое Абстрактная математика, а что практическая?

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

    Однако в целом вся математика чрезвычайно абстрактна. Логичная, стройная, по существу. Не в пример, экономике, которая сама не понимает, почему человек (или группа) поступает так или иначе.

    Практическая, если имеется ввиду прикладная, то это расширение стройной (ограниченной) математической модели новыми понятиями из других сфер, чтобы можно было используя математические методы решать задачи, например, биологии или социологии, да хоть литературы и музыки. Для этого производится некоторый переход математического понятия в другое, может быть прямой переход, а может косвенный. Например, рассчёт ВВП страны это прямой переход от бездушных чисел к убитым енотам. А классификация нот - переход от звуковой волны через преобразования Фурье к гармоническим колебаниям, то есть к спектру.
    Ответ написан
    Комментировать
  • Паттерн (алгоритм) генерации ключей?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ахах. Нет, не получится, выборка маленькая. Да и с большой вряд ли что получится, нужна последовательность. А её вы вряд ли получите, даже не пытайтесь.

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

    Штука вот в чём. Хорошие криптостойкие ГПСЧ и с известным алгоритмом колят уже 20 лет, да всё недоколоть. А вы хотите сам алгоритм узнать. Ну. Удачи.
    Ответ написан
    Комментировать
  • Школьная программа математики?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Лучший ресурс, неустанно буду повторять я, khanacademy. Единственная проблема - английский, но его знать сегодня также важно, как и уметь считать. Ведь в приципе, считать можно и не уметь (как большинство), не говоря уже о способности брать интегралы, однако некоторым сложностям такое поспособствует. Где знать английский? lingualeo или skype. А вообще, математика на самом деле любит вопросы почему и ненавидит как. Всё просто, это скорее даже не наука, а ремесло, подстраивающееся под различные виды наук, однако ремесло с обширнейшей историей, высокой степенью интеллектуального труда, однако не без литературных негров. Короче, треубется определённая гибкость ума, а умение решать по алгоритму интегралы это, конечно, хорошо, но понимать физический смысл оного для того, чтобы называться математиком - более чем необходимо.
    Ответ написан
    2 комментария
  • Можно ли изображение обратимо разложить на несколько, с изменением пространственной частоты?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Вопрос с подвохом, ибо не совсем понятно, что конкретно требуется. Вообще говоря, на машине Тьюринга такое сделать можно. Для этого потребуется сделать копию, размыть изображение, после чего каким-нибудь хитрым обратимым образом (тысячи их) размытое сложить с копией. Получим два размытых изображения, но путём уже нехитрых манипуляций получается их восстановить. Можно пользоваться спектральным пространством, чтобы с математической точки зрения всё было забавно. Однако смысл данной затеи от меня ускользает.
    Ответ написан
    7 комментариев
  • Где и Как познать четвертое измерение?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Эм, наши глаза видят не то, чтобы двумерно, вовсе не так всё, совсем не так. Они видят отображение трёхмерного пространства светом на "плоскость" неправильной формы, каждый из них, проецируемое с помощью линзы. На самом деле, это важное свойство, так как иначе мы видели бы лишь интенсивность света вокруг, возможно формы, но никак не FullHD картинку. Но это ещё не всё! Это видят глаза, каждый по отдельности, однако чуть дальше нейроны уже оперируют формами, линиями, заливками. Это очень важно, пока сигнал добирается до коры степень абстракций восходит с контраста, линий и форм до цветоощущений, объектов и их имён. Это не менее важно, так глаза один из необходимых условий для полноценного пространственного ориентирования. Я это всё к тому, что мы пространство преспокойно себе воспринимаем в трёх плоскостях. Даже не в двух с половиной, как принято считать, а в настоящих, полноценных трёх плоскостях. Другое дело, что многие в себе эту способность не развивают никак, ибо незачем, да и определённые ограничения всё-таки есть, всё таки видим мы только одну сторону, а не на сквозь. Вообще говоря, если углубляться в терминологию, тогда получается мы видим в трёх с половиной плоскостях. Интересно что это? Цвет? Чем не отдельная ось? Как минимум часть её. Но это уже извращения пошли, правда.

    Что там ещё? Четвёртое измерения? Ну время? Ощущаем мы его? Ну да. Память у нас работает, более менее. Так что можно с уверенностью сказать, что мы ощущаем все 4 измерения. Понятное дело, мы не увидим четыре измерения, как ты не поверни. Ощущать - да, пожалуйста, ощущение штука эфемерная. А вот зрение - это одно из ощущений, его подвинуть очень тяжело в силу высокой степени хардварности, если так можно выразиться. Софт ещё как-то, да дописывается, но ни новых цветов, ни четвёртой ортогонали другим осям мы не сможем вообразить, разве что отдельные уникумы, но и тут спорно.

    Но в остальном, познать можно сколько угодно измерений. Берёшь, и чертишь оси. Бац, бац. Ещё одна, и третья, и седьмая, и тринадцатая, да хоть девятьсот девяносто седьмая. Сколько угодно их, измерений этих. В основном, это уже математика пошла. Чтобы такое начать хоть как-то воображать советую попробовать заняться топологией, в теории множеств для удобство нередко используют многомерные пространства. Как математический объект очень удобен для задания различных метрик. Представляется вся эта чехарда в виде графов иногда, а иногда просто как абстрактное множество, просто назвали n-мерным пространством и всё. Например байт можно представить как восьмимерное пространство из битов: действительно, каждый из оных может меняется независимо от остальных, таким образом мы невозбранно получаем ортогональность, а остальное дело метрики, то есть техники.

    В любом случае, на этом нет смысла очень сильно зацикливаться. Часто мешает, а толку нуль. Да и собственное представление нередко сложно объяснить другому человеку, начинаются всякие кубы, размазывания и прочая ересь. Конечно, это не является никаким образом четвёртым измерением, это что называется, изображение проекции четырёх измерений на три или даже два. Ничего плохого в этом нет, но просто знать стоит.
    Ответ написан
    2 комментария
  • Что лучше изучать: математику или программирование?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Зачем я постоянно отвечаю на такие вопросы?

    Учись, учись и ещё раз учись. Я вот тоже где-то в твоём возрасте захотел осилить ИБ, даже профильный бакалавриат отучился, да вот... Не то это всё, ну не то. Но есть и плюсы, на данный момент очень много нерешённых проблем, которые решать как-то всё таки надо, да и подходов даже к их решению качественно не сложилось, другое дело физика - с ней всё проще, видишь, записываешь, выводишь модель, подтверждаешь, повторить. В ИБ всё сложнее, тут какие-то машины Тьюринга, теоремы ВЫП, 3-ВЫП и прочая ересь, да, в этом есть своя красота и логика, но уж чего точно здесь не встретить - так это простоты.

    К вопросу о математике, она простая. Самое сложное и контр-интуитивное что тебе потребуется в ИБ - так это теория вероятностей. Вот простейшая задачка: есть 8 шкатулок, с вероятностью 50% в одну из них положили рубль, потом открыли 7 шкатулок подряд и рубля в ней не нашли. С какой вероятностью в последней, восьмой шкатулке окажется рубль? Это очень простая, в некотором смысле даже классическая задача в теории вероятностей, охватывающая базовые вещи, решать её имеет смысл именно что в лоб, без использования всяких ухищрений. Это не сложно, там одна формула, но понять её на качественном уровне не так-то просто, но любое помехоустойчивое (WiFi) и энтропийное (7zip) кодирования эксплуатирует эти идеи во всей своей красе. Рекуррентные выражения, вычеты, поля и операции над его элементами, да щепотка комбинаторики, в общем-то большего и не требуется. Очень логичная, с ограниченным набором правил.

    Из литературы читаем Кормена (и решаем задачки в нём) и конкретную математику Кнута. Его искусство на любителя. Начать лучше с конкретной, если не понравится - то нечего и соваться.

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

    UPD. Немного системы не помешает (искать очень просто, выделяем ISBN, ПКМ, отправить в гугл, радуемся):
    1. Талмуд "от и до", очень помог в своё время и помогает иногда до сих пор. Алгоритмы. Построение и Анализ, Кормена, Лейзерсона и других. 978-5-8459-2016-4
    2. Высокоэффективная и чрезвычайно информативная, простая и сложная, интересная и потрясающая. Конкретная Математика. Кнут, Грэхэм, Паташкин 978-5-8459-1923-6
    3. Кибернетика? Преобразования фурье? Без паники! Цифровая Обработка Сигналов. Юкио Сато. 978-5-94120-251-5
    4. Что это? Манга? Про статистику? Да ну! Занимательная Статистика от Сина Такахаши. 978-5-94120-244-7
    Ответ написан
  • Какие математические модели используют для описания "Умного города"?

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

    В любом случае, не очень понятно, что именно вы хотите промоделировать. Максимизируемая функция многокритериальная, к тому же тема очень зыбкая. По сути, можно получить любые результаты при желании. Всё зависит от желаний.
    Ответ написан
    3 комментария
  • Как может заработать чистый математик?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ну вообще в университеты требуются и научные сотрудники тоже. Хотя в РФ с этим посложнее, но в целом пара мест на университет бывает. Конкурс, конечно, дикий. Преподавание не требуется, только научная работа под руководством. Минимальный обмен опытом, конечно, будет, но это на уровне раз в год по обещанию. Да и в основном по собственным работам.

    А так, да. Прикладные программисты. Попробуй mathematica (или python) и ищи по тегам "машинное обучение" и "нейронные сети", "обработка данных" (data mining). Или попробуй python + GLSL (или какой-нибудь движок и соответствующий язык шейдеров) и там уже играй в геометрию и вычислительную геометрию, поменьше математики, но покрасивее задачи и решения (как правило). Здесь теги примерно такие: "шейдеры", "3д программирование", "GLSL", "HLSL", "opengl", "directx", "(un)biased rendering". Ну и ещё есть физика, метеорология, биология и прочая ересь, где так же нужны программисты и они в основном дробят числа по хитрому. Хотя, что характерно, у нас в стране таким обычно занимаются сами физики, метеорологи, биологи и прочие. Хотя вот в международных компаниях это поставлено чуть правильнее.
    Ответ написан
    Комментировать
  • Как найти область определение функции?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Нет, здесь такое не стоит делать. Вам сюда.
    Ответ написан
    Комментировать
  • Есть ли интерактивный курс по математике?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ответ написан
    Комментировать
  • Как вскрыть линейный конгруэнтный генератор псевдослучайных чисел?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    В брутфорсе всё очень просто, мы генирируем последовательность за последовательностью и смотрим на ту, которую хотим взломать. Если всё совпадает - значит взломали. Каждый второй член сделано для усложнения.

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

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

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

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

    Есть огромное количество очень крутой литературы. "Алгоритмы. Построение и Анализ" Кормена и Лейзерсона, "Искусство Программирования" и "Конкретная Математика" Кнута. Есть khanacademy - очень крутой раздел математики, как раз от геометрических прогрессий до дифференциальных уравнений, свёрток функций и комбинаторных множеств. Разве только - английский. И да, практика. Начать, тогда, стоит с Кормена, причём с выполнением всех упражнений на каком-нибудь Python. А параллельно карманный справочник Граннемана, чтобы скрипты выходили не сборником интерактивных пауз, а с user-friendly CLI. Ну и для общего развития полезно освоить раздел Begginers Guide на wiki.archlinux.org.
    Ответ написан
    Комментировать
  • Какие существуют ресурсы с грантами или конкурсами для независимых исследователей?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Информации довольно много, потому что каждое такое событие довольно сильно освещено. В принципе, есть гранты на задачи тысячелетия. К тому же, можно поискать ошибки в книгах Кнута - будешь удостоен чеком с его подписью.
    Но чисто математических грантов пересчитать по пальцам. Зато есть множество чисто прикладных задач. Вроде проектирования космического лифта или лунохода.
    Ответ написан
  • Реализация вращения через кватернион. Где ошибка?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ух ты ж, какая прелесть.

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

    Впрочем, будучи немного и математиком, и довольно много программистом - стоит заметить, что в прикладном программировании к математически ёмким сферам очень часто всё сводят к операциям на матрицах. Если не всё, то бОльшую часть - везде где это возможно в общем. Почему? Во-первых, в 99% случаях матричные формы намного, много проще. Если не для человека, то для компьютера точно - ему лучше на порядок больше чисел подробить, чем заниматься дифф. анализом =) Во-вторых, есть огромное количество эффективных алгоритмов по работе с матрицами, причём как с огромными - параллельные вычисления, так и небольшими - быстрая арифметика. И, наконец, почти всегда записи в матричной форме куда лаконичнее.

    Вот... Что до кода, то с одной стороны ничего плохого, но вот названия методов повергают в тихий ужас. Multiply лично мне не нравится, в литературе довольно редкий термин, так как означает сам процесс, который никого здесь не интересует, а вот результат - это product. Тем более, что мы не меняем объект, а создаём новый. В русском это как умножение и произведение - учатся умножать, а вычисляют произведение. Как-то так. И не надо toVector - java и без вас знает какие аргументы подавать, а для вас это явно лишняя информация - следовало бы реализовать произведение кватернионов и кватерниона на константу, java бы сама уже вызывала нужный метод в зависимости от подаваемых параметров. И invert был бы не нужен.

    А соседство sum и residual... Ну это уже совсем печаль. Если метод изменяет объект (не наш случай) - то add и reduce - то есть процесс, если нет - sum и difference. Но residual... Битый час гадал при чём здесь GMRES, ведь обычная разность...

    В остальном... Более менее.
    Ответ написан
    Комментировать
  • Как составить уравнение?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    print random.choice([i for i in xrange(25, 326, 25)])


    Я к тому, что кроме приведения (0, 1] к требуемому промежутку можно использовать более простые методы. Тем более, два рандома не айс, если они честные, то есть их мало или они медленные. В вашем языке программирования (вернее, в вашей библиотеке) скорее всего есть что-то подобное.
    Ответ написан
    Комментировать
  • Кнут - "Искусство программирования", как осилить?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Да как же это смешно... Звучит примерно так: имеется интерес освоить хирургию, да только я туп на анатомию и биологию, да и руки кривые, ещё и дрожат. Если не в ладах с математикой, то Кнут не поможет. И вообще, веб-программирование так же относиться к математике, как балет к кулинарии. Сидите смирно и не парьтесь на этот счёт, вероятность того, что Кнут вам чем-то поможет в работе исчезающе мала, тогда как навредить он может на раз-два: можно запросто поймать себя на создании велосипедов.

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

    Впрочем, вместо кнута рекомендую Кормена. Очень даже вещь в себе: её читают как на первом курсе, так и диссертации по ней пишут. И читается проще, и зубодробительной математики в ней нет.
    Ответ написан
    9 комментариев
  • Как найти выборку максимально близких чисел из массива?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Расстояние Хемминга может формализовать задачу: требуется найти ограниченную область, расстояние двух любых точек в котором будет определяться r. Точки представлены векторами, где единица - наличие определённого ключевого слова, а нуль - его отсутствие.

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

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