Я пытаюсь представить алгебраические выражения, такие как полиномы и неполиномы, в С#. На данный момент у меня есть следующие классы
class Variable {
public char Var {get; set;}
public int Exponent {get; set;}
...
}
class Term {
public IList<Variable> {get; set;}
public int CoEfficient {get; set;}
...
}
class Expression {
public IList<Term> {get; set;}
...
}
Это позволяет мне представлять простые многочлены, такие как x^2+3x-8, но я хочу иметь возможность представлять такие выражения, как (x+3)(x-2) и 3x(y+2). Я пытался выяснить терминологию для этого, и я думаю, что первое - это выражение '(x+3)(x-2)', содержащее два выражения 'x +3" и "x-2", каждый из которых содержит два члена "x", "3" и "x", "-2". Второе - это выражение «3x (y + 2)», содержащее выражение «y + 2», умноженное на термин «3x». Я думал, что вместо списка условий в классе Expression это был список объектов, которые базовые классы как Expression, так и Term и используют какую-то рекурсию
Как я могу представить это на своих занятиях?
Я также хочу иметь возможность представлять дроби и другие неполиномы
Как это вписывается в общую картину?
x
и3
также являются выражениями. См. также peterjuhasz.net/Articles/Details/extending-c- Sharp-with-алгебра и en.wikipedia.org/wiki/Binary_expression_tree - person Robert Harvey   schedule 04.03.2014