Я хочу, чтобы дерево функций в C, который будет выглядеть следующим образом: http://scr.hu/5rq/vdja0Создание дерева функций в C
Поэтому в основном я хочу, чтобы результат как это: http://scr.hu/5rq/f04uu
где x
это переменная, которую я могу предоставить (float). F0-F6 являются случайными функциями, которые принимают два аргумента (такие функции, как умножение, добавление или предоставление случайного числа). Итак, мой точный вопрос: как я могу это сделать? Я знаю, что это можно сделать легко, сохраняя точное значение, заданное каждой функцией в массивах. Но тогда это становится сложным, когда дело доходит до получения различного значения «x». Моя первая мысль была создать функцию, которая крепит случайную функцию для каждого узла в дереве, но потом, я не уверен, как должно быть сделано структуру, которая делает это дерево,
typedef struct drzewo typ;
struct drzewo {
typ *right;
typ *left;
typ *up;
float *value; //what to do with this ?
};
Я хотел бы каким-то образом изменить линию " float * value; " во что-то, что могло бы хранить функцию вроде Function1(left->value,right->value);
, но не выполнялось, а не точное значение функции с заданными аргументами и где Function1()
или Function2()
означает функцию, которая делит оба аргумента или умножает их или так далее.
Нет, это не для школы, и да, это моя жалкая попытка использовать генетическое программирование.
Похоже, вы пытаетесь достичь динамической оценки выражения. Означает ли это вашу проблему? Вам было бы легче сделать это на объектно-ориентированном языке. – Wug