Только для этого нужна была библиотека KeyGP, разрабатывавшаяся в Зеленограде, в том же предприятии, где делали ДВК. Эта библиотека была платная и имела хитроумную привязку к диску, т.е. просто так не скопируешь
Точно не предпринимал никаких усилий, чтобы совмещать графический и текстовый режимы. Обнаружил эту возможность случайно, если не ошибаюсь - запустил свою текстовую программу, когда на экране оставалось изображение от какой-то игры (что-то вроде Maze Runner), которая слетела. Тоже тогда удивился наличию такой возможности
В своё время разрабатывал прекрасные TUI для ДВК-3.
Естественно, всякие рюшечки, в виде буковок различного размера, и всякие пиктограммки не нарисуешь.
Тоже работал на ДВК-3 очень давно. Насколько я помню, там можно было накладывать графический экран на текстовый, совмещая текстовый и графический режимы. Это позволяло создавать текстовые меню типа: "L-линия, R-прямоугольник, C-окружность", ожидать нажатия соответствующей клавиши и отображать результат выполнения на графическом экране
пока не вижу поддержки и заинтересованности сообщества в этом чтобы потратить на эвалюатор ещё времени
Чтобы получить поддержку и заинтересованность, вам бы не помешало создать какой-нибудь содержательный пример применения вашей библиотеки. Какой именно - я не знаю, но практически уверен, что попытка построения такого примера в виде программы почти наверняка привела бы к осознанию того, что компиляция и вычисление должны быть разделены
Путь, на котором сейчас находится автор (упорно не желая при этом двигаться дальше), я прошёл уже очень давно, несколько десятилетий назад. Когда тебе удаётся написать парсер арифметических выражений, начинаешь чувствовать себя чуть ли не повелителем Вселенной. Мой первый парсер вычислитель действительно был устроен примерно так же, то есть каждое вычисление выражение должно было предваряться синтаксическим разбором, на входе была строка выражения и значение переменной, на выходе - значение выражения. Назначение того вычислителя было совершенно конкретным - построение графиков функций, заданных формулами. Однако, поскольку дело было давно, довольно быстро стало понятно, что все это работает слишком медленно (хотя для того конкретного применения и тех компьютеров этого и было достаточно, однако на ум приходили и более сложные задачи). Поэтому, повторюсь, уже очень давно мой набор процедур для вычислений стал состоять из отдельного парсера, преобразующего строку во внутреннее представление (дерево), и отдельной процедуры вычисления значения выражения по заданным дереву и значениям переменных.
Бенчмарки однократного вычисления значения выражения, конечно же, абсолютно бессмысленны
Еще и обладающий удивительным творческим долголетием
Имел удовольствие видеть его живьём на концерте, как он становится на одну ногу. Он до сих пор выступает (ближайший концерт запланирован на 13 сентября в Швеции), но, кажется, на одной ноге уже не стоИт
Но таким образом, более сложным, но научным и подробным, я доказала и показала, что от роста выборки уменьшается погрешность
Знаете, иногда следует отступать от "научности" в пользу наглядности. Куда нагляднее была бы табличка для увеличивающихся N, которая бы показывала уменьшение ошибки. Кстати, в этом случае следовало бы использовать именно одну и ту же последовательнось псевдослучайных чисел, у которой бы увеличивалась только длина
В Python, как и в других языках программирования, есть возможность генерировать повторяющиеся последовательности псевдослучайных чисел
Большое спасибо за уточнение, но почему тогда вы, зная об этом, не привели в статье результат для какой-то фиксированной последовательности? Неужели я должен устанавливать себе Питон, чтобы узнать, насколько результат применения метода Монте-Карло отличается от истинного? Результат для заданной последовательности не поздно привести прямо сейчас, разом ответив на все недоумения по поводу его отсутствия
Я правильно понимаю, что у метода Монте-Карло и любых других, у которых ответ может меняться от запуска к запуску погрешность оценить нельзя?
Совсем не знаю Питона, но подозреваю, что в нем (как и в других нормальных языках) должна существовать возможность опционально генерировать ту же самую последовательность псевдослучайных чисел, повторяющуюся при каждом запуске. Это, в частности, необходимо для целей отладки и воспроизводимости результатов. По крайней мере, во Free Pascal такая возможность есть
UPD. Какой там Free Pascal, это было и в Turbo Pascal 5.0, т.е. практически было всегда
Долго пытался понять, насколько хорошим получилось приближение, но так и не понял. Результат точного вычисления вручную нашел, приближение - нет. Заранее прошу прощения, если проглядел
основатель Kodak, Джордж Истман, остался в истории.
О свадьбе Пола Маккартни и Линды Истман
Журналисты, которым посчастливилось оказаться там, поинтересовались у Линды, имеет ли она отношению к семейству магнатов фотоиндустрии Истман — Кодак. На что Линда, которую уже успели достать этим вопросом, лишь устало покачала головой. И тогда Пол под всеобщий смех присутствовавших состроил ужаснейшую гримасу, побледнел и завопил, обращаясь к ней: «Что!!! Ты меня надула. А как же мои денежки!»
А где написано, что это ваша модель? Это всего лишь простая модель циклона, полное описание которой умещается в одном комментарии.Ваша модель намного лучше и вообще превосходная
Вот простая динамическая модель атмосферной циркуляции, состоящая из трёх дифференциальных уравнений. При разных значениях параметров в модель описывает либо циклон, либо пассаты. Модель основана на моделировании ячеек Хэдли
Намного сложнее потом сократить результат (недостаточно отбросить "шелуху" вроде добавления нуля или умножения на 1, могут понадобиться всякие дополнительные преобразования, раскрытия скобок, тригонометрические приколы и т.д.)
Это зависит от того, что вы собираетесь с этой производной делать дальше. Мне она нужна была для получения якобиана системы диффуравнений, который далее должен был использоваться в вычислениях. Для этого вполне достаточно было иметь элементы якобиана в виде деревьев, очищенных от вырожденных случаев (x*0=0 и т.п.). Если же подразумевается иное использование (например, студент на экзамене должен доказать, что умеет брать производные) - тогда действительно могут понадобиться дополнительные упрощения
Но что еще интересно, то получив дерево разбора, можно потом с ним делать всякое (а не только банальное вычисление). Например, я тогда прикрутил в свою либу возможность получения производной функции
Совершенно верно, я тоже дифференцирование реализовал. Еще написал крайне полезную функцию, которая показывает, зависит ли данное выражение в виде дерева от заданной пременной
И еще один аспект - вычисление следует выполнять с помощью выражения, заведомо не содержащего синтаксических ошибок, иначе каждый раз при вычислении придется выполнять кучу проверок
В таком случае ваши тесты измеряют не скорость вычисления, а суммарную скорость компиляции (парсинга) и вычисления. А теперь представьте себе, что какая-нибудь другая библиотека компилирует выражения в десять раз медленнее, чем ваша, зато после компиляции вычисляет их на 10 % быстрее. Какая библиотека, по-вашему, будет более полезной? Компиляция (перевод во внутреннее представление) и вычисление по внутреннему представлению должны быть отделены друг от друга обязательно. Практически во всех содержательных приложениях на одну компиляцию приходится множество вычислений, иногда соотношение может достигать сотен тысяч или миллионов. Просто вообразите себе, что вашу библиотеку кто-то захочет использовать для построения графика функции (сотни или тысячи вычислений на одну компиляцию) или для решения диффуравнений (десятки тысяч вычислений на одну компиляцию)
Все равно не понимаю. Там все примеры - это вычисление одного выражения. Хотел бы понять, как это выглядит в цикле - одно и то же выражение, вычисляемое 10000 раз для различных значений переменной
Точно не предпринимал никаких усилий, чтобы совмещать графический и текстовый режимы. Обнаружил эту возможность случайно, если не ошибаюсь - запустил свою текстовую программу, когда на экране оставалось изображение от какой-то игры (что-то вроде Maze Runner), которая слетела. Тоже тогда удивился наличию такой возможности
Тоже работал на ДВК-3 очень давно. Насколько я помню, там можно было накладывать графический экран на текстовый, совмещая текстовый и графический режимы. Это позволяло создавать текстовые меню типа: "L-линия, R-прямоугольник, C-окружность", ожидать нажатия соответствующей клавиши и отображать результат выполнения на графическом экране
Я тоже, в частности, потому, что не обнаружил поблизости белое пространство
Чтобы получить поддержку и заинтересованность, вам бы не помешало создать какой-нибудь содержательный пример применения вашей библиотеки. Какой именно - я не знаю, но практически уверен, что попытка построения такого примера в виде программы почти наверняка привела бы к осознанию того, что компиляция и вычисление должны быть разделены
Путь, на котором сейчас находится автор (упорно не желая при этом двигаться дальше), я прошёл уже очень давно, несколько десятилетий назад. Когда тебе удаётся написать парсер арифметических выражений, начинаешь чувствовать себя чуть ли не повелителем Вселенной. Мой первый
парсервычислитель действительно был устроен примерно так же, то есть каждое вычисление выражение должно было предваряться синтаксическим разбором, на входе была строка выражения и значение переменной, на выходе - значение выражения. Назначение того вычислителя было совершенно конкретным - построение графиков функций, заданных формулами. Однако, поскольку дело было давно, довольно быстро стало понятно, что все это работает слишком медленно (хотя для того конкретного применения и тех компьютеров этого и было достаточно, однако на ум приходили и более сложные задачи). Поэтому, повторюсь, уже очень давно мой набор процедур для вычислений стал состоять из отдельного парсера, преобразующего строку во внутреннее представление (дерево), и отдельной процедуры вычисления значения выражения по заданным дереву и значениям переменных.Бенчмарки однократного вычисления значения выражения, конечно же, абсолютно бессмысленны
Не скажите, Catfish Rising вполне себе блюзовый альбом, ну, возможно, звучащий не совсем по-американски
Still Loving You Tonight
Это было, так сказать, то, с чего Jethro Tull начинали (This was)
Еще и обладающий удивительным творческим долголетием
Имел удовольствие видеть его живьём на концерте, как он становится на одну ногу. Он до сих пор выступает (ближайший концерт запланирован на 13 сентября в Швеции), но, кажется, на одной ноге уже не стоИт
Знаете, иногда следует отступать от "научности" в пользу наглядности. Куда нагляднее была бы табличка для увеличивающихся N, которая бы показывала уменьшение ошибки. Кстати, в этом случае следовало бы использовать именно одну и ту же последовательнось псевдослучайных чисел, у которой бы увеличивалась только длина
Спасибо, наконец-то. Можно было бы еще добавить пару результатов с увеличинным N, чтобы было наглядно видно, что ошибка уменьшается
Большое спасибо за уточнение, но почему тогда вы, зная об этом, не привели в статье результат для какой-то фиксированной последовательности? Неужели я должен устанавливать себе Питон, чтобы узнать, насколько результат применения метода Монте-Карло отличается от истинного? Результат для заданной последовательности не поздно привести прямо сейчас, разом ответив на все недоумения по поводу его отсутствия
Совсем не знаю Питона, но подозреваю, что в нем (как и в других нормальных языках) должна существовать возможность опционально генерировать ту же самую последовательность псевдослучайных чисел, повторяющуюся при каждом запуске. Это, в частности, необходимо для целей отладки и воспроизводимости результатов. По крайней мере, во Free Pascal такая возможность есть
UPD. Какой там Free Pascal, это было и в Turbo Pascal 5.0, т.е. практически было всегда
Долго пытался понять, насколько хорошим получилось приближение, но так и не понял. Результат точного вычисления вручную нашел, приближение - нет. Заранее прошу прощения, если проглядел
О свадьбе Пола Маккартни и Линды Истман
А где написано, что это ваша модель? Это всего лишь простая модель циклона, полное описание которой умещается в одном комментарии.Ваша модель намного лучше и вообще превосходная
По-моему, направление движения такое же, как указано у вас
Анимация движения воздуха
Пожалуйста, не называйте модель моею, её авторы Safieddine Bouali и Jos Leys, я её просто воспроизвёл.
Вот простая динамическая модель атмосферной циркуляции, состоящая из трёх дифференциальных уравнений. При разных значениях параметров в модель описывает либо циклон, либо пассаты. Модель основана на моделировании ячеек Хэдли
Уравнения системы, параметры и начальные условия
Взято отсюда:
Tropical Cyclone Genesis: a Dinamician's Point of View
Это зависит от того, что вы собираетесь с этой производной делать дальше. Мне она нужна была для получения якобиана системы диффуравнений, который далее должен был использоваться в вычислениях. Для этого вполне достаточно было иметь элементы якобиана в виде деревьев, очищенных от вырожденных случаев (x*0=0 и т.п.). Если же подразумевается иное использование (например, студент на экзамене должен доказать, что умеет брать производные) - тогда действительно могут понадобиться дополнительные упрощения
Совершенно верно, я тоже дифференцирование реализовал. Еще написал крайне полезную функцию, которая показывает, зависит ли данное выражение в виде дерева от заданной пременной
И еще один аспект - вычисление следует выполнять с помощью выражения, заведомо не содержащего синтаксических ошибок, иначе каждый раз при вычислении придется выполнять кучу проверок
В таком случае ваши тесты измеряют не скорость вычисления, а суммарную скорость компиляции (парсинга) и вычисления. А теперь представьте себе, что какая-нибудь другая библиотека компилирует выражения в десять раз медленнее, чем ваша, зато после компиляции вычисляет их на 10 % быстрее. Какая библиотека, по-вашему, будет более полезной? Компиляция (перевод во внутреннее представление) и вычисление по внутреннему представлению должны быть отделены друг от друга обязательно. Практически во всех содержательных приложениях на одну компиляцию приходится множество вычислений, иногда соотношение может достигать сотен тысяч или миллионов. Просто вообразите себе, что вашу библиотеку кто-то захочет использовать для построения графика функции (сотни или тысячи вычислений на одну компиляцию) или для решения диффуравнений (десятки тысяч вычислений на одну компиляцию)
Все равно не понимаю. Там все примеры - это вычисление одного выражения. Хотел бы понять, как это выглядит в цикле - одно и то же выражение, вычисляемое 10000 раз для различных значений переменной