안녕하세요 저는 수학 공식에서 불필요한 괄호를 제거하는 알려진 방법이 있는지 궁금합니다. 나는이 질문을하고 그 이유는 내가 기본적으로 SQL SELECT 문의 일부입니다 같은 식 길이수학 표현식에서 불필요한 괄호를 없애는 방법
if((-if(([V].[6432])=0;0;(([V].[6432])-([V].[6445]))*(((([V].[6443]))/1000*([V].[6448])
+(([V].[6443]))*([V].[6449])+([V].[6450]))*(1-([V].[6446])))))=0;([V].[6428])*
((((([V].[6443]))/1000*([V].[6445])*([V].[6448])+(([V].[6443]))*([V].[6445])*
([V].[6449])+([V].[6445])*([V].[6450])))*(1-([V].[6446])));
을 최소화해야한다는 것입니다. 255자를 초과 할 수 없으며이 수식을 생성하는 코드를 수정할 수 없습니다 (기본적으로 블랙 박스;) 많은 괄호는 쓸모가 없습니다. 사실을 언급하지 않는다 :
((a) * (b)) + (c) = a * b + c
그래서 나는 연산 순서를 유지하려고한다. 괄호, 곱하기/나눗셈, 더하기/빼기.
임씨는 VB에서 작업하지만 모든 언어의 솔루션은 문제가되지 않습니다.
편집 나는 반대 문제 (식이 괄호를 추가) Question을 발견했다.
나는 이것이 무거운 파싱없이 수행 될 수 있다고 생각했습니다. 그러나 표현식을 거쳐 표현식 트리에 저장하는 일부 구문 분석기는 불가피합니다.
Keith. 나는 그것을 줄 것이다. – Pawel