Что я узнал из этой статьи: инфоцыганская стратегия "это не я, это он" больше не работает.
P.S. Уже несколько лет пилю порт FFTPack на C# в ООП стиле. Ещё лет 10-15 пилю открытый SDK для DSP на двух языках сразу. Несколько статей по математике из черновиков никак не выберутся. Где взять время, чтобы ещё и телеграм-канал вести? Чем его наполнять на регулярной основе?
P.P.S. Но на парочку телеграм-каналов я таки подписан. Правда, они не про айти. Но тоже для взрослых)
На простых сигналах сдвиг по фазам конечно не ощутим на слух, особенно если он гладкий. Просто захотелось подушнить по-случаю) Я ещё не до конца понял идею автора, но он обещал продолжение, подождём. Может, и в моих задачах пригодится.
Например, если перемешать фазы в аудиосигнале, то вы почти не заметите изменений на слух
Заметите. Например, если просто поменять знаки фаз в спектре - во временном домене это приведёт к реверсу, то есть звук будет воспроизводиться задом наперёд.
Ну а применительно к теме больше смысла рассматривать не преобразование Фурье, а преобразование Лапласа, как это делается в электротехнике. Там тоже есть частоты и фазы, но а) он определён от 0 до бесконечности и б) для действительных чисел.
Ну, годовой оборот на заводе, где работаю, за прошлый год составил 768.4 млрд. рублей (из открытых источников). Вашего Склада там совершенно точно нет и о его существовании никто даже и не подозревает. И решения о том, какой именно софт покупать, принимаются прежде всего из политических соображений, а не рекламных статей. А также он имеет собственный штат программистов, который подобного уровня софт может разработать самостоятельно.
Палитесь. Написали бы честно - "Кризис лишил нас работы — и мы купили Мой Склад, который зарабатывает миллиарды" - и то лучше было бы. Ну или Славе Рюмину занесите денюжку - у него такие истории лучше получаются.
Обычно "что-то не так" значит отсутствие знания. Потому что в теме старой как мир перепробовано уже всё всеми. Знакомство с методом Ньютона поможет вам не только квадратные корни находить, но вообще практически любые обратные функции. Ну а ваш метод отличается от него лишь запутанным ходом рассуждения и отсутствием формализации.
Чужих ошибок слишком много. Я один, а их 8 миллиардов. В чужих ошибках неизвестна предыстория и прочие детали. Чужие ошибки вообще не факт, что ошибки - кто я такой чтобы решать, кто прав, а кто нет.
Спасибо за статью! Тоже слышал эту новость, но в оригинальную статью вникать даже и не пытался, ибо не настоящий математик. А вот в вашу повникаю с большим интересом. Через пару месяцев вникания оставлю повторный комментарий, получилось обрести понимание или нет.
Давайте переформулирую: выигрыш от уменьшения количества шагов может быть нивелирован временными затратами на выполнение самого алгоритма, и по факту результат может оказаться не лучше, а хуже. Именно поэтому при оценке сложности алгоритмов множители отсутствуют.
Не, не решает. Ускорение в несколько раз достигается просто обычной программной оптимизацией. Мой личный рекорд - ускорение в 40 раз, используя ассемблер. И в целом ради ускорения в 2-3 раза я за оптимизацию не берусь.
Ну и практическую значимость имеет разложение не на два множителя, а на их произвольное количество. И сравнивать результат надо не с самым простым алгоритмом по количеству итераций, а с его реализаций в популярных мат.пакетах. Если ваш алгоритм разложит число на множители в 10 раз быстрее (по секундомеру), чем например Mathematica - вот тогда да, атмосфера в комментариях будет совсем другой.
Хорошая статья. Но вы здесь (наряду с классиками) рассматриваете идеи лишь применительно к материальному, в то время как есть же ещё социум. В котором обитают такие идеи как "релокация", "замутить стартап", "сколотить рок-группу", "доказать теорему Ферма без смс и регистрации", "выйти замуж за миллионера" и всё такое. Идеи, которым некоторые не могут противостоять и которые непосредственно управляют нашей жизнью.
Ну назовите это как "асинхронный конечный автомат", суть от этого не меняется. Состояния явно прописаны, их количество конечно, в один момент времени существует только одно детерминированное состояние.
Маленький не получится, для этого придётся какой-то игрушечный пример придумывать.
Ну вот например у меня есть объект для вывода звука одновременно на несколько устройств, и у него есть такие состояния, которые должны проходить последовательно:
Запросы на изменение состояния обрабатывается в начале каждого. И если запрос на остановку приходит при переходе с INIT_DEVICES на START_DEVICES - то состояния WAIT_FOR_BUFFERS и STOP_DEVICES можно пропустить и переходить сразу на FREE_DEVICES. А в состояниях STOPPED, STOP_DEVICES и FREE_DEVICES его отслеживать не имеет смысла.
Соответственно запрос на старт имеет смысл обрабатывать только в состоянии STOPPED, а объект в состоянии STOPPED висит на блокирующем событии, чтобы не расходовать зря процессорное время, поэтому об этом нужно дополнительно просигнализировать объекту межпоточной синхронизации, прямой доступ к которому давать снаружи тоже не самая лучшая идея.
Тут разница в том, что в одном случае нерадивый коллега дёргает стоп-кран, а в другом случае - вежливо просит машиниста поезда остановиться. А машинист поезда может его так же вежливо послать ждать следующей остановки.
А вы говорите, зачем нужно ООП. Чтобы State снаружи нельзя было изменять, вот зачем. Я конечные автоматы тоже предпочитаю делать в отдельном потоке, а управление через методы типа bool Stop() {must_stop=true;}, где must_stop - это приватный флаг и будет обработан там, где надо.
Поясняю: то был тонкий намёк на то, что вам не известно про понятие лапласиана, иначе вы не выбрали бы этот символ (так как он уже занят и общепринят). То есть автоматически классифицирует вас в группу дилетантов, ищущих решения сложных задач простыми, но "хитрыми" способами.
Искусство.
Что я узнал из этой статьи: инфоцыганская стратегия "это не я, это он" больше не работает.
P.S. Уже несколько лет пилю порт FFTPack на C# в ООП стиле. Ещё лет 10-15 пилю открытый SDK для DSP на двух языках сразу. Несколько статей по математике из черновиков никак не выберутся. Где взять время, чтобы ещё и телеграм-канал вести? Чем его наполнять на регулярной основе?
P.P.S. Но на парочку телеграм-каналов я таки подписан. Правда, они не про айти. Но тоже для взрослых)
Мне кажется, функцию XOR лучше продемонстрирует сложение двух частот в противофазе (ага, тот самый случай, когда фаза важна).
На простых сигналах сдвиг по фазам конечно не ощутим на слух, особенно если он гладкий. Просто захотелось подушнить по-случаю) Я ещё не до конца понял идею автора, но он обещал продолжение, подождём. Может, и в моих задачах пригодится.
Заметите. Например, если просто поменять знаки фаз в спектре - во временном домене это приведёт к реверсу, то есть звук будет воспроизводиться задом наперёд.
Ну а применительно к теме больше смысла рассматривать не преобразование Фурье, а преобразование Лапласа, как это делается в электротехнике. Там тоже есть частоты и фазы, но а) он определён от 0 до бесконечности и б) для действительных чисел.
Ну, годовой оборот на заводе, где работаю, за прошлый год составил 768.4 млрд. рублей (из открытых источников). Вашего Склада там совершенно точно нет и о его существовании никто даже и не подозревает. И решения о том, какой именно софт покупать, принимаются прежде всего из политических соображений, а не рекламных статей. А также он имеет собственный штат программистов, который подобного уровня софт может разработать самостоятельно.
Палитесь. Написали бы честно - "Кризис лишил нас работы — и мы купили Мой Склад, который зарабатывает миллиарды" - и то лучше было бы. Ну или Славе Рюмину занесите денюжку - у него такие истории лучше получаются.
А начальное значение удобно находить через рациональную аппроксимацию, например
Которая получена например аппроксимацией Паде (здесь в точке 100).
Обычно "что-то не так" значит отсутствие знания. Потому что в теме старой как мир перепробовано уже всё всеми. Знакомство с методом Ньютона поможет вам не только квадратные корни находить, но вообще практически любые обратные функции. Ну а ваш метод отличается от него лишь запутанным ходом рассуждения и отсутствием формализации.
Чужих ошибок слишком много. Я один, а их 8 миллиардов. В чужих ошибках неизвестна предыстория и прочие детали. Чужие ошибки вообще не факт, что ошибки - кто я такой чтобы решать, кто прав, а кто нет.
Спасибо за статью! Тоже слышал эту новость, но в оригинальную статью вникать даже и не пытался, ибо не настоящий математик. А вот в вашу повникаю с большим интересом. Через пару месяцев вникания оставлю повторный комментарий, получилось обрести понимание или нет.
Давайте переформулирую: выигрыш от уменьшения количества шагов может быть нивелирован временными затратами на выполнение самого алгоритма, и по факту результат может оказаться не лучше, а хуже. Именно поэтому при оценке сложности алгоритмов множители отсутствуют.
Не, не решает. Ускорение в несколько раз достигается просто обычной программной оптимизацией. Мой личный рекорд - ускорение в 40 раз, используя ассемблер. И в целом ради ускорения в 2-3 раза я за оптимизацию не берусь.
Ну и практическую значимость имеет разложение не на два множителя, а на их произвольное количество. И сравнивать результат надо не с самым простым алгоритмом по количеству итераций, а с его реализаций в популярных мат.пакетах. Если ваш алгоритм разложит число на множители в 10 раз быстрее (по секундомеру), чем например Mathematica - вот тогда да, атмосфера в комментариях будет совсем другой.
Хорошая статья. Но вы здесь (наряду с классиками) рассматриваете идеи лишь применительно к материальному, в то время как есть же ещё социум. В котором обитают такие идеи как "релокация", "замутить стартап", "сколотить рок-группу", "доказать теорему Ферма без смс и регистрации", "выйти замуж за миллионера" и всё такое. Идеи, которым некоторые не могут противостоять и которые непосредственно управляют нашей жизнью.
Этак и вы любую программу назовёте не конечным автоматом.
Ну назовите это как "асинхронный конечный автомат", суть от этого не меняется. Состояния явно прописаны, их количество конечно, в один момент времени существует только одно детерминированное состояние.
Маленький не получится, для этого придётся какой-то игрушечный пример придумывать.
Ну вот например у меня есть объект для вывода звука одновременно на несколько устройств, и у него есть такие состояния, которые должны проходить последовательно:
STOPPED,
ENUMERATE_RUNTIME_MODULES,
INIT_DEVICES,
START_DEVICES,
WAIT_FOR_BUFFERS,
STOP_DEVICES,
FREE_DEVICES
Запросы на изменение состояния обрабатывается в начале каждого. И если запрос на остановку приходит при переходе с INIT_DEVICES на START_DEVICES - то состояния WAIT_FOR_BUFFERS и STOP_DEVICES можно пропустить и переходить сразу на FREE_DEVICES. А в состояниях STOPPED, STOP_DEVICES и FREE_DEVICES его отслеживать не имеет смысла.
Соответственно запрос на старт имеет смысл обрабатывать только в состоянии STOPPED, а объект в состоянии STOPPED висит на блокирующем событии, чтобы не расходовать зря процессорное время, поэтому об этом нужно дополнительно просигнализировать объекту межпоточной синхронизации, прямой доступ к которому давать снаружи тоже не самая лучшая идея.
Тут разница в том, что в одном случае нерадивый коллега дёргает стоп-кран, а в другом случае - вежливо просит машиниста поезда остановиться. А машинист поезда может его так же вежливо послать ждать следующей остановки.
А вы говорите, зачем нужно ООП. Чтобы State снаружи нельзя было изменять, вот зачем. Я конечные автоматы тоже предпочитаю делать в отдельном потоке, а управление через методы типа
bool Stop() {must_stop=true;}, где must_stop - это приватный флаг и будет обработан там, где надо.Поясняю: то был тонкий намёк на то, что вам не известно про понятие лапласиана, иначе вы не выбрали бы этот символ (так как он уже занят и общепринят). То есть автоматически классифицирует вас в группу дилетантов, ищущих решения сложных задач простыми, но "хитрыми" способами.