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

Человек

Отправить сообщение

Но где-то через год добиваться того же эффекта стало сложнее. Организм адаптировался - теперь, чтобы хорошенько устать, приходилось ходить по 2-3 часа.

Знакомая ситуация. До сих пор 2 часа пешком - это лёгкая прогулка в удовольствие, а на велосипеде и подавно. Но решение нашлось - махи гирей и приседания в количестве 200-300 раз. Делал и больше для интереса, но именно такое количество оказалось оптимальным, когда организм воспринимает эту нагрузку как разминку и не переходит в режим истощения.

Алгоритм выглядит интересно, обязательно проверю его на досуге. В своё время делал его через раскрашивание рёбер, и не для просто инициализации, а в целом для потока вычислений. Вопрос: на зацикленных вариантах проверяли? типа a->b->a.

Согласно теории Платона, идеи (понятия, эйдосы) располагаются в идеальном мире. И конечно, в этом мире находятся также все числа и прочие математические объекты, которые не принадлежат миру материальному

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

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

Не доводилось пробовать настоящий васаби, но того, что у нас доступен - фанат. Потому всячески поддерживаю и желаю успехов, чтобы таки попробовать)

свой формат компактного хранения real

Я ожидал по ссылке увидеть описание идеи, но не нашёл.

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

\frac{x}{\left(x^n\pm 1\right)^{1/n}}

пакует значения от -бесконечности до +бесконечности к от -1 до 1 и обратно:

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

Спасибо ещё раз) То, что IEEE 754 идеально подходит для инженеров - это не случайно, ведь именно для них он и был разработан, чтобы с запасом охватить все стандартные физические константы. Сам я тоже часто злоупотребляю NaN-ми, хотя и склонен считать, что это скорее bad practice - в частности, не все базы данных общего назначения его понимают.

Предъявить структуру этих объектов - это решение задачи, а не её постановка. Постановка задачи - это например решение уравнений, в которых появляется \sqrt{-1} . Тогда можно ввести понятие мнимой единицы и декомпозировать обычное число на произведение двух комплексных. И заодно некоторые простые числа перестают быть простыми в их исходной формулировке, например

(1+4 i) (1-4 i)=17

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

То есть вы смогли декомпозировать все перечисленные базовые математические объекты? Очень интересно. Но я два раза прочитал статью и так и не понял постановку задачи и критерии оценки правильности её решения.

За ссылки на мои статьи спасибо, но почему их автором указан совсем другой человек?

Синус от комплексного числа может принимать любое значение, в том числе и 2. Примерно 1.5708-1.31696i это число.

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

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

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

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

    class Program
    {
        static void Main(string[] args)
        {
            double num = 0.77777777;
            double eps = 0.0000001;
            foreach (var z in GetRationalizations(num, eps))
            {
                Console.WriteLine(z);
            }
        }

        public static IEnumerable<RationalNumber> GetRationalizations(double number, double epsilon)
        {
            var intPart = (int)Math.Floor(number);
            yield return new RationalNumber(intPart, 1);

            var fractionPart = number - intPart;
            if (fractionPart < epsilon) yield break;

            foreach (var rationalNumber in GetRationalizations(1 / fractionPart, epsilon))
            {
                yield return new RationalNumber(rationalNumber.Denominator + intPart * rationalNumber.Numerator, rationalNumber.Numerator);
            }
        }
    }

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

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

Посмотрел вашу библиотеку ещё раз. По-прежнему не понимаю, зачем всё оформлять в стилу 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 у меня уже решён. Вы сами-то для каких целей используете свою библиотеку?

Я видел вашу библиотеку ещё давно, но мне она показалась слегка переусложнённой. Ну или я не допонял её истинного назначения.

Я так понимаю, ваша задача состоит в получении длительности ноты из midi-файла? Тогда нормализация рационального числа это наименьшая из всех проблем. Длительности типа 133/400 обычно получаются не потому, что музыка авангардная, а потому, что длительности скорректированы для эффекта стаккато/легато/арпеджио/свинг/ и т.д. Стартовые позиции ноты тоже могут быть смещены в том числе и для эффекта "гуманизации", для создания иллюзии живой игры. Это если не рассматривать вариант, когда midi изначально вживую записывается.

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

P.S. у меня коллега сбросил 20 кг за 4 месяца, просто отказавшись от сахара без каких-либо посягательств на ЗОЖ. Что наводит на мысль о том, что обвинение злоупотребления сладкой едой в одной из главных причин ожирения не так уж и беспочвенны.

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

Информация

В рейтинге
1 856-й
Откуда
Россия
Работает в
Зарегистрирован
Активность