The library for C++ provides an STL-like container class for n -ary trees, templated over the data stored at the nodes. Various types of iterators are provided (post-order, pre-order, and others). Where possible the access methods are compatible with the STL or alternative algorithms are available. The library is available under the terms of...
Не нашёл на форуме обсуждений реализации этих структур данных. Как их лучше (в смысле скорости исполнения и удобства программирования) реализовать на MQL5 - через массив или ссылки?
Если конкретнее, то интересуют деревья (и леса) общего вида (не бинарные), с вершинами (и/или рёбрами) помеченными простыми структурами.
Вам какие деревья нужны собсно?
Случайные леса для обучения Ваших моделей?
Бинарные деревья поиска?
Идеально сбалансированные 2,3-деревья?
b-деревья?
Префиксные trie-деревья?
Красно-черные деревья?
Дерево Меркла для валидации цепочек данных?
Что значит "помечены простыми структурами"? Типа генерики?
В С++ использовал библиотеку tree.hh - работа с деревьями в стиле STL. Было бы весьма неплохо портировать её в MQL5, но сомневаюсь что это возможно)
с STL сложно будет портировать в MQL, по причине отсутствия аналогичных шаблонов в MQL - писали тут, но для себя
про SQL - если в массивах можете сделать свое исследование, то SQL прекрасно с этим работает, но сделать быстро выборку в массиве Вы должны сами алгоритм поиска продумать, а БД уже готова к этому из коробки
с STL сложно будет портировать в MQL, по причине отсутствия аналогичных шаблонов в MQL - писали тут, но для себя
про SQL - если в массивах можете сделать свое исследование, то SQL прекрасно с этим работает, но сделать быстро выборку в массиве Вы должны сами алгоритм поиска продумать, а БД уже готова к этому из коробки
Спасибо, очень интересно. Всё же, опасаюсь использовать стандартную библиотеку (после неприятного опыта с библиотекой статистики). Думаю, полноценные деревья (со всеми видами обхода, свёртками и тд) для анализа делать в других языках (делал в Хаскеле, но хочу попробовать Rust). На MQL5 же - только какие-то усечённые варианты на основе динамических массивов с минимальным необходимым функционалом и только при наличии практической необходимости.
Спасибо, очень интересно. Всё же, опасаюсь использовать стандартную библиотеку (после неприятного опыта с библиотекой статистики). Думаю, полноценные деревья (со всеми видами обхода, свёртками и тд) для анализа делать в других языках (делал в Хаскеле, но хочу попробовать Rust). На MQL5 же - только какие-то усечённые варианты на основе динамических массивов с минимальным необходимым функционалом и только при наличии практической необходимости.
опять к вопросу ... друг спрашивает, что хотите найти в этих деревьях?
если тестер не нужен - вопросов нет, скорее всего можно и софт найти который с графами работает из коробки, т.е. нет смысла писать и программировать
если все таки MQL - сомневаюсь, что Rust так просто к "тестеру прикрутить"
мой пример только данные хранить, еще работы много - обход дерева, добавление узлов....
прогуглил, ибо сам теорией графов все мечтаю посмотреть на графики - опять к SQL вернулся, вот даже готовые SQL-запросы в статье "Деревья в SQL" (3 части - ссылки вверху) http://www.codenet.ru/db/other/trees/
опять к вопросу ... друг спрашивает, что хотите найти в этих деревьях?
если тестер не нужен - вопросов нет, скорее всего можно и софт найти который с графами работает из коробки, т.е. нет смысла писать и программировать
если все таки MQL - сомневаюсь, что Rust так просто к "тестеру прикрутить"
мой пример только данные хранить, еще работы много - обход дерева, добавление узлов....
прогуглил, ибо сам теорией графов все мечтаю посмотреть на графики - опять к SQL вернулся, вот даже готовые SQL-запросы в статье "Деревья в SQL" (3 части - ссылки вверху) http://www.codenet.ru/db/other/trees/
Нужна возможность всех видов обхода деревьев (штук шесть их), свёртка (фолдинг), чтение/запись в файл, добавление/удавление ветвей. Удобно в хаскеле, но он медленный. Думаю попробовать в rust, там есть много уже готового - не люблю делать всё с нуля) SQL, наверное, тоже окажется медленным.
Если в содержательном плане, то это дерево из ценовых вершин (в духе идей Мандельброта) для подсчёта мультифрактального спектра. Сильно сомневаюсь, что дойдёт дело до тестера - просто поиграться в математику немного) Периодически MQL5 начинает казаться языком вполне подходящим для общих целей, но потом быстро понимаешь что опять ошибся)
General purpose tree library. The current version provides two implementions of heap-allocated, child-sibling linked trees and one implementation of vec-backed tree. The default implementation is linked::fully, which stores previous/next sibling and parent/child pointers in one node, with size information tracked. The alternative linked tree is...
По стопам Гудылина?)
Такие высоты для меня совершенно недосягаяемы - ограничусь Мандельбротом)
сами деревья портировать в MQL не сложно
В С++ использовал библиотеку tree.hh - работа с деревьями в стиле STL. Было бы весьма неплохо портировать её в MQL5, но сомневаюсь что это возможно)
Не нашёл на форуме обсуждений реализации этих структур данных. Как их лучше (в смысле скорости исполнения и удобства программирования) реализовать на MQL5 - через массив или ссылки?
Если конкретнее, то интересуют деревья (и леса) общего вида (не бинарные), с вершинами (и/или рёбрами) помеченными простыми структурами.
Вам какие деревья нужны собсно?
Случайные леса для обучения Ваших моделей?
Бинарные деревья поиска?
Идеально сбалансированные 2,3-деревья?
b-деревья?
Префиксные trie-деревья?
Красно-черные деревья?
Дерево Меркла для валидации цепочек данных?
Что значит "помечены простыми структурами"? Типа генерики?
Вам какие деревья нужны собсно?
Случайные леса для обучения Ваших моделей?
Бинарные деревья поиска?
Идеально сбалансированные 2,3-деревья?
Красно-черные деревья?
Что значит "помечены простыми структурами"? Типа генерики?
Если "генерик" означает общий вид, то да. Иногда их ещё вроде бы называют "розовыми" - rose tree.
"Помеченые" - вроде стандартное обозначение, что в каждой вершине (и/или ребре) хранятся "метки" - значения одного типа.
В С++ использовал библиотеку tree.hh - работа с деревьями в стиле STL. Было бы весьма неплохо портировать её в MQL5, но сомневаюсь что это возможно)
с STL сложно будет портировать в MQL, по причине отсутствия аналогичных шаблонов в MQL - писали тут, но для себя
про SQL - если в массивах можете сделать свое исследование, то SQL прекрасно с этим работает, но сделать быстро выборку в массиве Вы должны сами алгоритм поиска продумать, а БД уже готова к этому из коробки
ЗЫ: Хабр... дает много вариантов уже из готового, когда еще находишься в стадии изысканий https://habr.com/ru/post/303374/
с STL сложно будет портировать в MQL, по причине отсутствия аналогичных шаблонов в MQL - писали тут, но для себя
про SQL - если в массивах можете сделать свое исследование, то SQL прекрасно с этим работает, но сделать быстро выборку в массиве Вы должны сами алгоритм поиска продумать, а БД уже готова к этому из коробки
ЗЫ: Хабр... дает много вариантов уже из готового, когда еще находишься в стадии изысканий https://habr.com/ru/post/303374/
Нашёл дерево в библиотеке GLib. Наверное, попытаюсь сделать что-нибудь похожее (по интерфейсу)
Нашёл дерево в библиотеке GLib. Наверное, попытаюсь сделать что-нибудь похожее (по интерфейсу)
понятно, Вы ищете N-арное дерево
никогда не делал, Ваш пример объёмный, попробовал портировать первый попавшийся пример попроще: https://www.geeksforgeeks.org/depth-n-ary-tree/
была уже заготовка для списков, которую помог @fxsaber сделать https://www.mql5.com/ru/forum/85652/page16#comment_12346740
ну и соберем в MQL-код:
понятно, Вы ищете N-арное дерево
никогда не делал, Ваш пример объёмный, попробовал портировать первый попавшийся пример попроще: https://www.geeksforgeeks.org/depth-n-ary-tree/
была уже заготовка для списков, которую помог @fxsaber сделать https://www.mql5.com/ru/forum/85652/page16#comment_12346740
ну и соберем в MQL-код:
Спасибо, очень интересно. Всё же, опасаюсь использовать стандартную библиотеку (после неприятного опыта с библиотекой статистики). Думаю, полноценные деревья (со всеми видами обхода, свёртками и тд) для анализа делать в других языках (делал в Хаскеле, но хочу попробовать Rust). На MQL5 же - только какие-то усечённые варианты на основе динамических массивов с минимальным необходимым функционалом и только при наличии практической необходимости.
Спасибо, очень интересно. Всё же, опасаюсь использовать стандартную библиотеку (после неприятного опыта с библиотекой статистики). Думаю, полноценные деревья (со всеми видами обхода, свёртками и тд) для анализа делать в других языках (делал в Хаскеле, но хочу попробовать Rust). На MQL5 же - только какие-то усечённые варианты на основе динамических массивов с минимальным необходимым функционалом и только при наличии практической необходимости.
опять к вопросу ... друг спрашивает, что хотите найти в этих деревьях?
если тестер не нужен - вопросов нет, скорее всего можно и софт найти который с графами работает из коробки, т.е. нет смысла писать и программировать
если все таки MQL - сомневаюсь, что Rust так просто к "тестеру прикрутить"
мой пример только данные хранить, еще работы много - обход дерева, добавление узлов....
прогуглил, ибо сам теорией графов все мечтаю посмотреть на графики - опять к SQL вернулся, вот даже готовые SQL-запросы в статье "Деревья в SQL" (3 части - ссылки вверху) http://www.codenet.ru/db/other/trees/
опять к вопросу ... друг спрашивает, что хотите найти в этих деревьях?
если тестер не нужен - вопросов нет, скорее всего можно и софт найти который с графами работает из коробки, т.е. нет смысла писать и программировать
если все таки MQL - сомневаюсь, что Rust так просто к "тестеру прикрутить"
мой пример только данные хранить, еще работы много - обход дерева, добавление узлов....
прогуглил, ибо сам теорией графов все мечтаю посмотреть на графики - опять к SQL вернулся, вот даже готовые SQL-запросы в статье "Деревья в SQL" (3 части - ссылки вверху) http://www.codenet.ru/db/other/trees/
Нужна возможность всех видов обхода деревьев (штук шесть их), свёртка (фолдинг), чтение/запись в файл, добавление/удавление ветвей. Удобно в хаскеле, но он медленный. Думаю попробовать в rust, там есть много уже готового - не люблю делать всё с нуля) SQL, наверное, тоже окажется медленным.
Если в содержательном плане, то это дерево из ценовых вершин (в духе идей Мандельброта) для подсчёта мультифрактального спектра. Сильно сомневаюсь, что дойдёт дело до тестера - просто поиграться в математику немного) Периодически MQL5 начинает казаться языком вполне подходящим для общих целей, но потом быстро понимаешь что опять ошибся)