2012-04-06 6 views
0

가능한 중복 :
automatically calculate string mathematical expressing in C#알고리즘/방법에 대한 간단한 대수 단순화

사람이 같은 간단한 대수 방정식을 단순화하는 방법을 자세히 설명하는 몇 가지 자원으로 날 지점 수 없습니다 " "+", "-", "*", "/", "^"및 괄호 만 처리해야하는 연산자는 "12x^2 + 5x + 2"가되는 5x + (2x * 6x) . 지금까지 필자는 in-fix에서 post-fix로 변환 한 후 수치를 나타내는 파서와 평가자를 구현했습니다.

누군가 내가이 작업을 수행 할 수있는 방법에 대해 기본 실행 시간을 줄 수 있다면 크게 도움이 될 것입니다.

+0

잘 모르겠다. [폴란드어 표기법] (http://en.wikipedia.org/wiki/Polish_notation) – sll

+0

왜 단순화하고 싶은가? –

답변

1

이미 내부적으로 방정식을 나타내는 트리가있는 경우 재귀 적으로 각 노드를 방문하여 두 하위 노드의 조건을 결합하는 방법이 있는지 확인할 수 있습니다. 각 노드에서 수행 할 작업을 생각한 다음 경계 조건 (노드가 null이거나 노드에 자식이없는 등)을 생각해보십시오.

  1. 방문 각 아이를 차례로
  2. 아이들에서 같은 변수에 대한 공통의 힘을 찾아서 을 결합하는 기능을 가지고 : 여기

    내가 그것을 접근하는 것이 방법이다. 다중 변수 방정식을 고려하십시오. b. 출력 형식과 작업 복사본 형식을 기억하십시오. 최종 결과를 다시 텍스트로 변환해야합니다.

시작되었습니다. 내 생각 엔