Не могу решить математическое выражение, используя DDMathParser
Я использую DDMathParser
разобрать строковые выражения. Я работаю над одним выражением, которое "(2+x)6+2x+2y=5y+2x
"Я пытаюсь разобрать его и оценить, используя DDMathParser
, Это можно рассматривать как функцию первой степени, которую мне нужно решить с помощью Цели C.
Ребята есть идеи?
Помощь будет высоко ценится.
DDExpression * e = [DDExpression expressionFromString:expression error:error];
NSNumber *num = [e evaluateWithSubstitutions:substitutions evaluator:nil error:error];
1 ответ
Я не знаю много о DDMathParser
(Хорошо, я ничего не знаю об этом), но , взглянув на документацию, вы поймете, что не так с вашим кодом.
Основываясь на документации, я не смог найти пример того, где DDMathParser
может обрабатывать символические выражения. Все примеры на странице использования показывают числовые выражения.
Символьная математика приведена в разделе Библиотека символической математики в C / C++ / Obj-C.
Кроме того, похоже, что вы пытаетесь найти две переменные с помощью одного уравнения, что, безусловно, не приведет к числовому решению.
Однако, если вы просто пытаетесь подставить значения в x
а также y
, вы должны использовать $
подписать перед ними, как говорится в документации:
Если вы не знаете, каким должно быть значение конкретного термина при построении строки, это нормально; просто используйте переменную:
NSString *math = @"6 * $a";
Поэтому, если вы просто хотите заменить значения в своем выражении, попробуйте использовать:
string expression = @"(2+$x)6+2*$x+2*$y";
Затем заполните значения.
NSDictionary *s = @{@"x" : 42, @"y" : 43};
И оцените.
DDMathEvaluator *eval = [DDMathEvaluator sharedMathEvaluator];
NSLog(@"%@", [eval evaluateString:expression withSubstitutions:s]);