Ответы пользователя по тегу Математика
  • Как решить тригонометрическое уравнение?

    arusef
    @arusef
    Novice .NET dev
    (1 - cosX)(1 + cosX) = 1 - cos(x)^2 = sin(x)^2
    Только это не уравнение. Где правая часть?
    Ответ написан
  • Как сделать парсер мат. выражений в котором аргументы могут иметь длину больше чем 1?

    arusef
    @arusef
    Novice .NET dev
    Для начала опишите минимальный язык ваших выражений:
    <выражение> ::= <литерал> <оператор> <литерал>
    <литерал> ::= <число> | (<выражение>)
    <число> ::= [<число> | "-"]<0-9> // или всё, что парсится parseInt.
    <оператор> ::= < + | - | * | / >

    Теперь можно видеть структуру вашего выражения, и применить какой-то алгоритм парсинга:
    Выражение начинается с литерала, значит, считываем символы из входной строки, пока не встретим пробел или \0: если это цифры, то наш литерал - число, если "(" - выражение, для которого нужно повторить всю процедуру, ожидая закрытия ")". Дальше считываем оператор. А потом снова литерал. Если что-то по правилам не подходит, то завершаемся с ошибкой.
    Ну и каждый литерал может быть вычислен - число возвращает число, а выражение возвращает результат применения оператора к двум литералам. Общий результат - результат вычисления корневого выражения.
    Ответ написан
    1 комментарий
  • Как доказать отсутствие алгоритма для решения задачи?

    arusef
    @arusef
    Novice .NET dev
    В общем случае, задачи такого рода сводятся к, наоборот, доказательству существования алгоритма.
    Есть несколько универсальных базовых методов доказательств: от противного, индукция, инвариант, и т.д.

    Для решения такой задачи, вам нужно выделить несколько основных тезисов, касающихся вашей проблемы:
    1. Исходные данные
    2. Варианты возможных действий с ними
    3. То, как изменяются данные в процессе
    4. Что должно получиться на выходе
    Основываясь на этом можно применить вышеуказанные методы, например, предположить, что такой алгоритм существует, или, например, составить шаги индукции и определить, для всех ли случаев выполняются условия. В таком контексте, ваши исходные условия - это аксиомы, они нерушимы и не требуют доказательств. На основе аксиом можно строить некоторые леммы - такие себе "частичные доказательства" - какие-то более сложные положения, которые выводятся из аксиом, и помогают позже в конечном доказательстве. Следует также помнить, что условие доказательства можно искусственно усилить, для того, чтобы легче было доказать всю вашу теорему.
    Больше об этом можно послушать в лекциях от MIT.
    Ответ написан
    Комментировать