Есть понятие модели, у автора она явно перегружена. В этом и состоит искусство выбрать такие критерии, чтобы и не упростить сильно модель, но и не усложнить незначащими деталями.
Критерий, связанный с работой человеческого мозга. Все что больше 7 плохо, лучше 3.
Статья посвящена, как не дать доступ к данным при физическом изъятии сервера (из розетки то нужно будет выдернуть) при котором даже не будет ясно, хранили ли на нем что-нибудь. Вопрос сохранения копий и паролей можно решить многими способами и в статье это не обсуждается.
Читайте внимательно, наверху написано
«Изучение винчестеров должно показать обычную систему, т.е. ничего и еще большой не отформатированный кусок винчестера»
Да и из кода понятно должно быть.
Если пишите для кого-то то лучше использовать какую-то стандартную (обязательно с открытыми исходниками) библиотеку шифрования. Если для себя, лучше самому написать свой метод, пусть он возможно будет хуже, чем стандартный, зато его вскрытие будет настолько дорого, что ради вас некто заморачиватся не будет и «закладок» тоже не будет. Только не используйте стандартные генераторы случайных чисел. Ну и главное, нужно просто элементарно беречь пароли. Не забывайте самое слабое звено человек и это вы. habrahabr.ru/post/240097/
Множество квадратных невырожденных матриц одного порядка с вещественными элементами образует группу относительно умножения. Эта группа коммутативной уже не является.
Но есть ассоциативность. Приведите пример чтобы была коммутативность, но не было ассоциативности.
Есть жесткие системы (и в этом они необыкновенны) или будем уподобляться филологам, которые говорят что не по русски написано «некорректные задачи» или «теория катастроф». Есть термины и их названия оправданы. Автор по любому прав, поскольку тема важная и неоднозначная. Из математика можно сделать программиста, а вот наоборот я случаев не знаю.
GMP работает, Reduce работает, Maxima работает, Maple работает и еще с десяток работает. Но ассоциативность не возвращается. Вы писали про интервальные вычисления, но там нужны специальные алгоритмы, в лоб не получится. Это дефект математического образования в России. Вместо того, чтобы специалистам по вычислительной математики читать алгебру в них пихают матанализ. Извините за резкость.
Спасибо. Я тоже хотел ответить на ту статью, но поленился.
Хорошим примером могут служит корни алгебраических уравнений.
Есть несколько методов отделения корней и их уточнения. Так вот, если посчитать в корне значение полинома, то для полинома 20 степени значение в корне может быть 10^12 или даже выше.
А ларчик открывается просто. При операциях с плавающей точкой (по европейски или по русски с запятой) операция сложения коммутативна, но не ассоциативна. Ассоциативность гораздо более сильно свойство, чем коммутативность.
Т.е. может быть так (a + b )+ c ≠ a + (b + c)
Я просто приведу аналогию.
Людей знающих английский и русский много.
Переводчиков с английского на русский и обратно намного меньше.
Переводчиков с английского знающих профессионально предметную область (например избитую экономику) практически нет.
Программистов знающих математику практически нет.
Математиков знающих программирования (среди молодых практически все).
Своя, отечественная система это замечательно.
Но, вот например, только Python-овские пакеты sympy, scipy (с numpy и matplotlib + внешние, тот же GSL) давно делают, то же самое, что SMath Studio. Даже намного больше.
Если нужен интерфейс, то опять Python-овский sage.
И главное, они давно отлажены, они бесплатные и в них и для них работают многие.
Я просто знаю, что разработка нормальной (универсальной) для работы системы компьютерной алгебры занимает примерно 100 человеко-лет.
Ниже примеры, которые несколько лет назад я писал для студентов.
В отличие от окружающего нас мира, в котором всё конечно, в математике мы часто сталкиваемся с бесконечными объектами.
Фраза требует не большего пояснения. Математики рассматривают бесконечность не просто так. Дело в том, что «как правило» введение бесконечности значительно упрощает исследуемый объект. Хотя это звучит странно, но надо понимать, что «бесконечность» это «математическая абстракция», которую тяжело представить, но за то с ней легче работать.
Очень агрессивно. И главное бесполезно. Нужно менять взгляды, политику. Если идиот делает заплатку и Вы ее находите, флаг Вам в руки, только америКанский.
1. «Ну и красивая картинка обтекания» это дорожка Кармана.
2. А почему бы не привести задачу обтекания круглого цилиндра. Там более сложное течение для расчета.
3. Также интересны времена. Мне кажется все очень медленно.
4. Есть вещи, которые иногда надо учитывать, а в этом подходе я не заметил. Например Навье-Стокса для несжимаемой жидкости для краткости в двумерном случае
(1) u_x + u_y=0
(2) u_t + u u_x + v u_y = -p_x + 1/Re(u_xx + u_yy)
(3) v_t + u v_x + v v_y = -p_y + 1/Re(v_xx + v_yy)
Если (2)_x + (3)_y — (1)_t — u (1)_x — v (1)_y + 1/Re((1)_xx + (1)_yy) = u_x^2 + 2 v_x u_y + v_y^2 + p_xx + p_yy = 0
Т.е. не учитывая полученное уравнение, в которое время явно не входит Вы не сможете правильно сформулировать условия на границы и в начальный момент времению
Автору большое спасибо. Читал все с удовольствием, но я не верю в универсальные решатели. Возможно для инженеров самое то. Конечно порадовало отсутствие метода конечных элементов.
«Мы делаем самую замечательную и полезную рекламу, которая может быть.»
Вы уже думаете на английском языке. И она рассчитана на идиотов.
Основная идея Хоара дать для каждой конструкции императивного языка пред и постусловие записанное в виде логической формулы. Поэтому и возникает в названии тройка — предусловие, конструкция языка, постусловие.
Ясно, что для пустого оператора пред и постусловия совпадают.
Для оператора присваивания в постусловие кроме предусловия должно учитывать факт, что значение переменной стало другим.
Для составного оператора (в Python это отступы, в C это {}) имеем цепочку пред и постусловий. В результате для составного оператора можно оставить первое предусловие и последнее постусловие.
Правило вывода говорит, что можно усилить пред и ослабить постусловие если нам это понадобиться. Нет смысла волочь через всю программу какое-то утверждение, которое не помогает решить поставленную задачу.
Оператор ветвления или просто if. Его условно можно разбить на две ветки then и else. Если к предусловию добавить истинность логического условия (то, что стоит под if), то после выполнения ветки then должно следовать постусловие. Аналогично, если к предусловию добавить отрицание логического условия (то, что стоит под if), то после выполнения ветки else должно следовать постусловие
Оператор цикла. Это самое нетривиальное и сложное, поскольку цикл может выполняется много раз и даже не окончится. Чтобы решить проблему возможно многократного повтора тела цикла вводят инвариант цикла. Инвариант цикла это то, что истинно перед его выполнением, истинно после каждого выполнения тела цикла и следовательно истинно и после его окончания. Предусловие для оператора цикла это просто его инвариант цикла. Если истинно условие продолжения цикла (то, что стоит под while), то после выполнения тела цикла должна следовать истинность инвариант цикла. В результате после окончания цикла имеем в качестве постусловия истинность инвариант цикла и отрицание условия продолжения цикла.
Оператора цикла с полной корректностью. Для этого к предыдущему пункту добавляют ограничивающую функцию, с помощью которой легко доказать, что цикл будет выполнятся ограниченное число раз. На нее накладывают условия, что она всегда >=0, строго убывает после каждого выполнения тела цикла и в точности =0, когда цикл заканчивается.
Хоар фактически предложил:
Давайте воспользуемся произволом при написании программ и будем их писать так, чтобы легче было доказать их корректность. В результате и программу легче написать, и доказательство корректности сразу получим.
Это мои слова.
По поводу доказательства правильности алгоритма. Есть в математике набор инструментов позволяющий доказывать теоремы. Я назову общеизвестные: метод математической индукции, от противного. Так вот логика Хоара это инструмент доказательства корректности программ (правильнее частичной корректности, но это уже нюансы), который в принципе может быть использован и для доказательства корректности алгоритма, если он записан в основных конструкциях императивного программирования, для которых есть Тройки Хоара.
Критерий, связанный с работой человеческого мозга. Все что больше 7 плохо, лучше 3.
«Математику уже затем учить надо,
что она ум в порядок приводит» М.В. Ломоносов
«Изучение винчестеров должно показать обычную систему, т.е. ничего и еще большой не отформатированный кусок винчестера»
Да и из кода понятно должно быть.
habrahabr.ru/post/240097/
Но есть ассоциативность. Приведите пример чтобы была коммутативность, но не было ассоциативности.
Хорошим примером могут служит корни алгебраических уравнений.
Есть несколько методов отделения корней и их уточнения. Так вот, если посчитать в корне значение полинома, то для полинома 20 степени значение в корне может быть 10^12 или даже выше.
А ларчик открывается просто. При операциях с плавающей точкой (по европейски или по русски с запятой) операция сложения коммутативна, но не ассоциативна. Ассоциативность гораздо более сильно свойство, чем коммутативность.
Т.е. может быть так (a + b )+ c ≠ a + (b + c)
— Здравствуйте, меня зовут Билл Гейтс и сегодня я научу вас считать до 10, поехали:
1, 2, 3, 95, 98, NT, 2000, XP, Vista, 7, 8, 10
Людей знающих английский и русский много.
Переводчиков с английского на русский и обратно намного меньше.
Переводчиков с английского знающих профессионально предметную область (например избитую экономику) практически нет.
Программистов знающих математику практически нет.
Математиков знающих программирования (среди молодых практически все).
Но, вот например, только Python-овские пакеты sympy, scipy (с numpy и matplotlib + внешние, тот же GSL) давно делают, то же самое, что SMath Studio. Даже намного больше.
Если нужен интерфейс, то опять Python-овский sage.
И главное, они давно отлажены, они бесплатные и в них и для них работают многие.
Я просто знаю, что разработка нормальной (универсальной) для работы системы компьютерной алгебры занимает примерно 100 человеко-лет.
Ниже примеры, которые несколько лет назад я писал для студентов.
f2 = -y[0]
jacobian = Matrix([[-a*(y[0]**2 — 1), a], [-1, 0]])
f2 = -b*y[1] + c — y[0]
jacobian = Matrix([[a*(-y[0]**2 + 1), a], [-1, -b]])
Фраза требует не большего пояснения. Математики рассматривают бесконечность не просто так. Дело в том, что «как правило» введение бесконечности значительно упрощает исследуемый объект. Хотя это звучит странно, но надо понимать, что «бесконечность» это «математическая абстракция», которую тяжело представить, но за то с ней легче работать.
GNU is not Unix. И правильнее не «Linux», а «GNU/Linux».
2. А почему бы не привести задачу обтекания круглого цилиндра. Там более сложное течение для расчета.
3. Также интересны времена. Мне кажется все очень медленно.
4. Есть вещи, которые иногда надо учитывать, а в этом подходе я не заметил. Например Навье-Стокса для несжимаемой жидкости для краткости в двумерном случае
(1) u_x + u_y=0
(2) u_t + u u_x + v u_y = -p_x + 1/Re(u_xx + u_yy)
(3) v_t + u v_x + v v_y = -p_y + 1/Re(v_xx + v_yy)
Если (2)_x + (3)_y — (1)_t — u (1)_x — v (1)_y + 1/Re((1)_xx + (1)_yy) = u_x^2 + 2 v_x u_y + v_y^2 + p_xx + p_yy = 0
Т.е. не учитывая полученное уравнение, в которое время явно не входит Вы не сможете правильно сформулировать условия на границы и в начальный момент времению
Автору большое спасибо. Читал все с удовольствием, но я не верю в универсальные решатели. Возможно для инженеров самое то. Конечно порадовало отсутствие метода конечных элементов.
Вы уже думаете на английском языке. И она рассчитана на идиотов.
Основная идея Хоара дать для каждой конструкции императивного языка пред и постусловие записанное в виде логической формулы. Поэтому и возникает в названии тройка — предусловие, конструкция языка, постусловие.
Ясно, что для пустого оператора пред и постусловия совпадают.
Для оператора присваивания в постусловие кроме предусловия должно учитывать факт, что значение переменной стало другим.
Для составного оператора (в Python это отступы, в C это {}) имеем цепочку пред и постусловий. В результате для составного оператора можно оставить первое предусловие и последнее постусловие.
Правило вывода говорит, что можно усилить пред и ослабить постусловие если нам это понадобиться. Нет смысла волочь через всю программу какое-то утверждение, которое не помогает решить поставленную задачу.
Оператор ветвления или просто if. Его условно можно разбить на две ветки then и else. Если к предусловию добавить истинность логического условия (то, что стоит под if), то после выполнения ветки then должно следовать постусловие. Аналогично, если к предусловию добавить отрицание логического условия (то, что стоит под if), то после выполнения ветки else должно следовать постусловие
Оператор цикла. Это самое нетривиальное и сложное, поскольку цикл может выполняется много раз и даже не окончится. Чтобы решить проблему возможно многократного повтора тела цикла вводят инвариант цикла. Инвариант цикла это то, что истинно перед его выполнением, истинно после каждого выполнения тела цикла и следовательно истинно и после его окончания. Предусловие для оператора цикла это просто его инвариант цикла. Если истинно условие продолжения цикла (то, что стоит под while), то после выполнения тела цикла должна следовать истинность инвариант цикла. В результате после окончания цикла имеем в качестве постусловия истинность инвариант цикла и отрицание условия продолжения цикла.
Оператора цикла с полной корректностью. Для этого к предыдущему пункту добавляют ограничивающую функцию, с помощью которой легко доказать, что цикл будет выполнятся ограниченное число раз. На нее накладывают условия, что она всегда >=0, строго убывает после каждого выполнения тела цикла и в точности =0, когда цикл заканчивается.
Хоар фактически предложил:
Давайте воспользуемся произволом при написании программ и будем их писать так, чтобы легче было доказать их корректность. В результате и программу легче написать, и доказательство корректности сразу получим.
Это мои слова.
По поводу доказательства правильности алгоритма. Есть в математике набор инструментов позволяющий доказывать теоремы. Я назову общеизвестные: метод математической индукции, от противного. Так вот логика Хоара это инструмент доказательства корректности программ (правильнее частичной корректности, но это уже нюансы), который в принципе может быть использован и для доказательства корректности алгоритма, если он записан в основных конструкциях императивного программирования, для которых есть Тройки Хоара.
Это мое и взято отсюда freehabr.ru/blog/programming/1934.html
Мне за державу обидно, потому и на Вас наехал. И по Вашим комментариям, похоже правильно.
Стыдно товарищи! + агрессивная реклама. Еще раз стыдно.