Но где-то через год добиваться того же эффекта стало сложнее. Организм адаптировался - теперь, чтобы хорошенько устать, приходилось ходить по 2-3 часа.
Знакомая ситуация. До сих пор 2 часа пешком - это лёгкая прогулка в удовольствие, а на велосипеде и подавно. Но решение нашлось - махи гирей и приседания в количестве 200-300 раз. Делал и больше для интереса, но именно такое количество оказалось оптимальным, когда организм воспринимает эту нагрузку как разминку и не переходит в режим истощения.
Алгоритм выглядит интересно, обязательно проверю его на досуге. В своё время делал его через раскрашивание рёбер, и не для просто инициализации, а в целом для потока вычислений. Вопрос: на зацикленных вариантах проверяли? типа a->b->a.
Согласно теории Платона, идеи (понятия, эйдосы) располагаются в идеальном мире. И конечно, в этом мире находятся также все числа и прочие математические объекты, которые не принадлежат миру материальному
"Платон мне друг, но истина дороже" (с) Аристотель. Идея того, что математика первична по отношению к реальному миру - это чистой воды религия. Но к сожалению, математическое знание человечество получило не на скрижалях, а путём идеализации вполне реальных объектов из вполне реального наблюдаемого мира.
Я ожидал по ссылке увидеть описание идеи, но не нашёл.
В целом, линейной и логарифмической шкалы не ограничиваются же. Можно ещё кучу разных придумать, адаптированных под конкретные задачи и рабочие диапазоны значений. Например, вот такая простая формула
пакует значения от -бесконечности до +бесконечности к от -1 до 1 и обратно:
Предварительным линейным масштабированием можно задать и около-линейный диапазон, и точку отсчёта убывания точности, а затем квантовать под любое количество бит.
Спасибо ещё раз) То, что IEEE 754 идеально подходит для инженеров - это не случайно, ведь именно для них он и был разработан, чтобы с запасом охватить все стандартные физические константы. Сам я тоже часто злоупотребляю NaN-ми, хотя и склонен считать, что это скорее bad practice - в частности, не все базы данных общего назначения его понимают.
Предъявить структуру этих объектов - это решение задачи, а не её постановка. Постановка задачи - это например решение уравнений, в которых появляется . Тогда можно ввести понятие мнимой единицы и декомпозировать обычное число на произведение двух комплексных. И заодно некоторые простые числа перестают быть простыми в их исходной формулировке, например
Что очевидным образом меняет криптостойкость некоторых завязанных на простых числах алгоритмов шифрования. А вот если декомпозировать числа на палочки и кружочки - к математике такая декомпозиция отношения иметь уже не будет, а будет иметь отношение лишь к их символьному написанию. А ещё можно декомпозировать числа на заклинания из Гарри Поттера, почему нет.
То есть вы смогли декомпозировать все перечисленные базовые математические объекты? Очень интересно. Но я два раза прочитал статью и так и не понял постановку задачи и критерии оценки правильности её решения.
Так в этом и ценность открытого кода - что помимо публичных методов пользователю доступна и реализация, которую можно изучать, корректировать, и использовать в личных и немного других целях.
Проблема данного алгоритма (не реализации) в том, что его писал математик, а не программист. Для математика действительное число действительно имеет бесконечное количество значащих цифр, а погрешности вычислений в теории отсутствуют. Поэтому ему и нужен внешне задаваемый epsilon, чтобы ограничить бесконечное количество значащих цифр.
Программисту параметр epsilon не нужен - в том числе и потому, что совершенно непонятно, из каких критериев его выбирать. Даже интуитивно достаточного в половину точности оказалось недостаточно, ну а сам факт возможности бесконечного цикла категорически недопустим. Мой самый любимый нотный редактор на некоторых миди-шках крашится - откуда мне знать, может именно поэтому?
Правильное решение здесь - отказаться от внешнего параметра epsilon в принципе. После каждого нового полученного приближения нужно получить double взад делением числителя на знаменатель и посчитать abs разницы с оригинальным числом. Как только этот abs перестал уменьшаться (по сравнению с предыдуще посчитанным) - пора выходить из цикла. Только так можно гарантировать корректность перечисления с учётом всех погрешностей вычислений.
Ну так я и проверил копированием и выполнением части кода с заявленной функциональностью. Ограничение количества итераций, да ещё и где-то снаружи - это (на мой взгляд) очевидный костыль, поскольку количество приближений должно быть ограничено по определению. Но не воспринимайте это за критику, пожалуйста.
Посмотрел вашу библиотеку ещё раз. По-прежнему не понимаю, зачем всё оформлять в стилу Linq вместо перегрузки индексатора, чтобы иметь возможность писать типа
track[(SamplePosition)10000] = new NoteOn("ми6");
или
track[(TimePosition)"0:0:10"] = new Chord("Am", Duration.ToNextChord, ChordStyle.Guitar);
Видимо, дело вкуса. Но суть не в этом. Ваша реализация приближения действительного числа рациональным содержит ошибку, в результате чего итератор может входить в бесконечный цикл, например при значениях number=0.77777777 и eps = 0.0000001. Кроме того, особенно в контексте задачи, точность приближения удобнее ограничивать значением знаменателя. Кроме того, в контексте задачи, имеет смысл выделять дроби 3/2, 7/4, 15/8 ... , которые в стандартной нотной записи соответствуют точкам справа от ноты.
Я так понимаю, ваша задача состоит в получении длительности ноты из midi-файла? Тогда нормализация рационального числа это наименьшая из всех проблем. Длительности типа 133/400 обычно получаются не потому, что музыка авангардная, а потому, что длительности скорректированы для эффекта стаккато/легато/арпеджио/свинг/ и т.д. Стартовые позиции ноты тоже могут быть смещены в том числе и для эффекта "гуманизации", для создания иллюзии живой игры. Это если не рассматривать вариант, когда midi изначально вживую записывается.
В википедии пишут, что у него есть перроральная форма, колоться необязательно. Препарат выпущен на рынок в 2018 году, что значит (непредвзятая) статистика по его долговременному регулярному употреблению ещё не накопилась. Препарат изначально разрабатывался для лечения сахарного диабета, что значит следующее: снижение веса это и есть его побочный эффект, что после запрета амфетамина выглядит заманчивым инструментом заработка на добродушных толстяках. Учитывая что у многих антидепрессантов в побочных эффектах наоборот числится ожирение.
P.S. у меня коллега сбросил 20 кг за 4 месяца, просто отказавшись от сахара без каких-либо посягательств на ЗОЖ. Что наводит на мысль о том, что обвинение злоупотребления сладкой едой в одной из главных причин ожирения не так уж и беспочвенны.
Для меня двухразовое питание - это норма, сформировавшаяся сама собой, без дополнительных усилий. Считаю что качество еды и индивидуально подобранная диета более важны, чем результаты статистических исследований сомнительного характера.
Знакомая ситуация. До сих пор 2 часа пешком - это лёгкая прогулка в удовольствие, а на велосипеде и подавно. Но решение нашлось - махи гирей и приседания в количестве 200-300 раз. Делал и больше для интереса, но именно такое количество оказалось оптимальным, когда организм воспринимает эту нагрузку как разминку и не переходит в режим истощения.
Алгоритм выглядит интересно, обязательно проверю его на досуге. В своё время делал его через раскрашивание рёбер, и не для просто инициализации, а в целом для потока вычислений. Вопрос: на зацикленных вариантах проверяли? типа a->b->a.
"Платон мне друг, но истина дороже" (с) Аристотель. Идея того, что математика первична по отношению к реальному миру - это чистой воды религия. Но к сожалению, математическое знание человечество получило не на скрижалях, а путём идеализации вполне реальных объектов из вполне реального наблюдаемого мира.
А фарм.препараты вместо этого системно сужают сосуды, вплоть до головокружения. Ещё не факт, какой вариант лучше, особенно для курильщиков.
Не доводилось пробовать настоящий васаби, но того, что у нас доступен - фанат. Потому всячески поддерживаю и желаю успехов, чтобы таки попробовать)
Я ожидал по ссылке увидеть описание идеи, но не нашёл.
В целом, линейной и логарифмической шкалы не ограничиваются же. Можно ещё кучу разных придумать, адаптированных под конкретные задачи и рабочие диапазоны значений. Например, вот такая простая формула
пакует значения от -бесконечности до +бесконечности к от -1 до 1 и обратно:
Предварительным линейным масштабированием можно задать и около-линейный диапазон, и точку отсчёта убывания точности, а затем квантовать под любое количество бит.
Спасибо ещё раз) То, что IEEE 754 идеально подходит для инженеров - это не случайно, ведь именно для них он и был разработан, чтобы с запасом охватить все стандартные физические константы. Сам я тоже часто злоупотребляю NaN-ми, хотя и склонен считать, что это скорее bad practice - в частности, не все базы данных общего назначения его понимают.
Предъявить структуру этих объектов - это решение задачи, а не её постановка. Постановка задачи - это например решение уравнений, в которых появляется
. Тогда можно ввести понятие мнимой единицы и декомпозировать обычное число на произведение двух комплексных. И заодно некоторые простые числа перестают быть простыми в их исходной формулировке, например
Что очевидным образом меняет криптостойкость некоторых завязанных на простых числах алгоритмов шифрования. А вот если декомпозировать числа на палочки и кружочки - к математике такая декомпозиция отношения иметь уже не будет, а будет иметь отношение лишь к их символьному написанию. А ещё можно декомпозировать числа на заклинания из Гарри Поттера, почему нет.
То есть вы смогли декомпозировать все перечисленные базовые математические объекты? Очень интересно. Но я два раза прочитал статью и так и не понял постановку задачи и критерии оценки правильности её решения.
За ссылки на мои статьи спасибо, но почему их автором указан совсем другой человек?
Синус от комплексного числа может принимать любое значение, в том числе и 2. Примерно 1.5708-1.31696i это число.
Так в этом и ценность открытого кода - что помимо публичных методов пользователю доступна и реализация, которую можно изучать, корректировать, и использовать в личных и немного других целях.
Проблема данного алгоритма (не реализации) в том, что его писал математик, а не программист. Для математика действительное число действительно имеет бесконечное количество значащих цифр, а погрешности вычислений в теории отсутствуют. Поэтому ему и нужен внешне задаваемый epsilon, чтобы ограничить бесконечное количество значащих цифр.
Программисту параметр epsilon не нужен - в том числе и потому, что совершенно непонятно, из каких критериев его выбирать. Даже интуитивно достаточного в половину точности оказалось недостаточно, ну а сам факт возможности бесконечного цикла категорически недопустим. Мой самый любимый нотный редактор на некоторых миди-шках крашится - откуда мне знать, может именно поэтому?
Правильное решение здесь - отказаться от внешнего параметра epsilon в принципе. После каждого нового полученного приближения нужно получить double взад делением числителя на знаменатель и посчитать abs разницы с оригинальным числом. Как только этот abs перестал уменьшаться (по сравнению с предыдуще посчитанным) - пора выходить из цикла. Только так можно гарантировать корректность перечисления с учётом всех погрешностей вычислений.
Даже при искусственном ограничении итераций после первых 6-и приближений идёт мусор, включая отрицательные значения.
Ну так я и проверил копированием и выполнением части кода с заявленной функциональностью. Ограничение количества итераций, да ещё и где-то снаружи - это (на мой взгляд) очевидный костыль, поскольку количество приближений должно быть ограничено по определению. Но не воспринимайте это за критику, пожалуйста.
Посмотрел вашу библиотеку ещё раз. По-прежнему не понимаю, зачем всё оформлять в стилу Linq вместо перегрузки индексатора, чтобы иметь возможность писать типа
или
Видимо, дело вкуса. Но суть не в этом. Ваша реализация приближения действительного числа рациональным содержит ошибку, в результате чего итератор может входить в бесконечный цикл, например при значениях number=0.77777777 и eps = 0.0000001. Кроме того, особенно в контексте задачи, точность приближения удобнее ограничивать значением знаменателя. Кроме того, в контексте задачи, имеет смысл выделять дроби 3/2, 7/4, 15/8 ... , которые в стандартной нотной записи соответствуют точкам справа от ноты.
Спасибо, но вопрос с MIDI у меня уже решён. Вы сами-то для каких целей используете свою библиотеку?
Я видел вашу библиотеку ещё давно, но мне она показалась слегка переусложнённой. Ну или я не допонял её истинного назначения.
Я так понимаю, ваша задача состоит в получении длительности ноты из midi-файла? Тогда нормализация рационального числа это наименьшая из всех проблем. Длительности типа 133/400 обычно получаются не потому, что музыка авангардная, а потому, что длительности скорректированы для эффекта стаккато/легато/арпеджио/свинг/ и т.д. Стартовые позиции ноты тоже могут быть смещены в том числе и для эффекта "гуманизации", для создания иллюзии живой игры. Это если не рассматривать вариант, когда midi изначально вживую записывается.
В википедии пишут, что у него есть перроральная форма, колоться необязательно. Препарат выпущен на рынок в 2018 году, что значит (непредвзятая) статистика по его долговременному регулярному употреблению ещё не накопилась. Препарат изначально разрабатывался для лечения сахарного диабета, что значит следующее: снижение веса это и есть его побочный эффект, что после запрета амфетамина выглядит заманчивым инструментом заработка на добродушных толстяках. Учитывая что у многих антидепрессантов в побочных эффектах наоборот числится ожирение.
P.S. у меня коллега сбросил 20 кг за 4 месяца, просто отказавшись от сахара без каких-либо посягательств на ЗОЖ. Что наводит на мысль о том, что обвинение злоупотребления сладкой едой в одной из главных причин ожирения не так уж и беспочвенны.
Для меня двухразовое питание - это норма, сформировавшаяся сама собой, без дополнительных усилий. Считаю что качество еды и индивидуально подобранная диета более важны, чем результаты статистических исследований сомнительного характера.