Алгоритм манипуляции формулы

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

Например, если дали:

a + b = c
d + b = c

В программе должно поэтому быть сказано:

b = c - a, d = c - b    etc.

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

Пожалуйста, сообщите мне, должен ли я сделать алгоритм или не для этого, и если так, как я пошел бы о выполнении этого. Кроме того, если есть какие-либо полезные связи, которые вы могли бы иметь, пожалуйста, отправьте их.

Отношения

1
Ява имеет не встроенный для этого. Вам были бы нужны, по крайней мере, анализатор и символический процессор для этого... Возможно, взгляните на обданный кипятком, это - на самом деле забава написать грамматики с ним (в отличие от JavaCC или AntLR).
добавлено автор fge, источник
Ява имеет не встроенный для этого. Вам были бы нужны, по крайней мере, анализатор и символический процессор для этого... Возможно, взгляните на обданный кипятком, это - на самом деле забава написать грамматики с ним (в отличие от JavaCC или AntLR).
добавлено автор fge, источник
@Digitalwolf, о, я думал, что вы действительно хотели обработку символьной информации, не фактические вычисления. В этом случае это еще более просто: обданный кипятком имеет готовый к использованию калькулятор: p
добавлено автор fge, источник
@Digitalwolf, о, я думал, что вы действительно хотели обработку символьной информации, не фактические вычисления. В этом случае это еще более просто: обданный кипятком имеет готовый к использованию калькулятор: p
добавлено автор fge, источник
Я чувствую себя обязанным указать на это в шансе, вы - not' t знакомый с ним: Wolfram|Alpha
добавлено автор Nuclearman, источник
Я чувствую себя обязанным указать на это в шансе, вы - not' t знакомый с ним: Wolfram|Alpha
добавлено автор Nuclearman, источник
Единственной доступной вещью является обработка строк, и необходимо было бы написать его сами. Весело провести время...
добавлено автор jco.owens, источник
Единственной доступной вещью является обработка строк, и необходимо было бы написать его сами. Весело провести время...
добавлено автор jco.owens, источник
Взглянет. Спасибо.
добавлено автор Digitalwolf, источник
Взглянет. Спасибо.
добавлено автор Digitalwolf, источник
Спасибо, я с нетерпением жду проблемы. Так, я должен иметь каждую формулу как последовательность, управлять ею и затем преобразовать их в целые числа, удваивается и т.д.?
добавлено автор Digitalwolf, источник
Спасибо, я с нетерпением жду проблемы. Так, я должен иметь каждую формулу как последовательность, управлять ею и затем преобразовать их в целые числа, удваивается и т.д.?
добавлено автор Digitalwolf, источник

5 ответы

Не уверенный, что точно вы после, но эта проблема в ее общей проблеме трудна. Очень трудно.

На самом деле, учитывая ряд "формул" (аксиомы) и правила вычета (математические операции по эквивалентности), мы не можем вывести, если данная формула правильна или не . Эта проблема на самом деле undecideable.

This issue was first addressed by Hilbert as Entscheidungsproblem

1
добавлено
Очень хороший прочитанный. Дал мне много, чтобы думать о.
добавлено автор Digitalwolf, источник

Я читал, названная книга Жидкие Понятия и Творческие Аналогии Дугласом Хофстэдтером, который говорил об этом виде алгебраических манипуляций, которые автоматически перепишут уравнения в других способах пытаться соединить уравнения с другими уравнениями большое количество (все же ограниченный) количество путей, данных правила. Это была попытка доказать все же бездоказательные теоремы/доказательства грубой силой.

http://en.wikipedia.org/wiki/Fluid_Concepts_and_Creative_Analogies

Программа Дугласа Хофстэдтера Numbo пытается сделать то, что вы хотите. Он не дает вам источник, только описывает, как он работает подробно.

Это кажется, что вы хотите, чтобы программа сделала то, что делают highschool студенты, когда они решают алгебраические проблемы переместиться от положения, где вы знаете что-то, изменяя его и объединение его с другими уравнениями, чтобы доказать что-то ранее неизвестное. Это берет сильный Искусственный интеллект, чтобы сделать это. Часть вашего мозга, который делает это, Нео Кора, которая делает науку, и это работает, принцип на данный момент не понят.

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

http://en.wikipedia.org/wiki/Neocortex

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

1
добавлено
Хороший сэр you' ve выбрал некоторые самые трудные проблемы в информатике, хорошей на вас. Также этот курс поможет дать вам инструменты для работы: class.coursera.org/ml/lecture/preview
добавлено автор Eric Leschinski, источник
Спасибо, это очень похоже на то, какова моя конечная цель. Попытается овладеть этой книгой.
добавлено автор Digitalwolf, источник

Смотрите на JavaCC. Это - немного укрощения сначала, но это - правильный инструмент для чего-то вроде этого. Плюс уже есть примеры из того, чего вы пытаетесь достигнуть.

1
добавлено
Пожалуйста, уточните, как нужно использовать javaCC, чтобы достигнуть того, что он после. Он надеется создавать новые формулы из данной формулы, разбирая его (который может действительно быть легко сделан javaCC), только самая маленькая проблема здесь
добавлено автор amit, источник

Да, необходимо написать некоторый алгоритм, чтобы сделать этот вид компьютерной алгебры. По крайней мере,

  • анализатор, чтобы интерпретировать вход
  • модель алгебры, чтобы связать разобранные операнды ('b'...) и оператор (' + ', ' = ')
  • осуществляет любое соответствующее правило поддержать манипуляцию, вы хотите сделать
1
добавлено
Уже имейте весь настроенный. просто нужно соответствующее правило для манипуляции. Несколько других постов принесли так очень актуальные вопросы к моему вниманию. Спасибо
добавлено автор Digitalwolf, источник

Да, необходимо написать некоторый алгоритм, чтобы сделать этот вид компьютерной алгебры. По крайней мере,

  • анализатор, чтобы интерпретировать вход
  • модель алгебры, чтобы связать разобранные операнды ('b'...) и оператор (' + ', ' = ')
  • осуществляет любое соответствующее правило поддержать манипуляцию, вы хотите сделать
1
добавлено
Уже имейте весь настроенный. просто нужно соответствующее правило для манипуляции. Несколько других постов принесли так очень актуальные вопросы к моему вниманию. Спасибо
добавлено автор Digitalwolf, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async