![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Neptune |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.11.2012 Репутация: нет Всего: нет |
Здравствуйте!
Необходим совет по выбору инструментов реализации ПО, которое должно производить не очень сложные расчеты над многомерными векторами и в перспективе нужно будет научить его строить графики по результатам этого расчета. Задача: имеется множество векторов, порядка 400-500 тыс. штук. В данный момент они хранятся в *.txt. Основная цель написание программы - вычисление расстояний между векторами, определение среднего расстояния, наиболее близких векторов и т.п. Расчеты нужно проводить не над всем множеством, а над конкретными выборками, сформированными случайным образом. В не столь близкой перспективе вижу ПО, которое работает с какой-либо СУБД, хранящей вектора в параметрическом виде. В программе есть модуль формирования выборок из общей базы. После чего производятся необходимые расчеты, результаты которых представляются в числовом виде и в графическом, посредством диаграмм. Писаться должно на С++. Обычно, когда время от времени возникает необходимость написания легких программок, пользуюсь Builder C++ 6. Был опыт С++ Builder 6 + СУБД Firebird. Подскажите, какую связку IDE + СУБД можно применить, для достижения максимального эффекта при минимальной сложности. Желательно, чтобы СУБД была фриворная. И вообще, есть ли смысл заморачиваться с СУБД, если можно хранить в файлах... ? Программа должна быть реализована грамотно с точки зрения функционала и архитектуры (алгоритма). Спасибо. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Чтобы ответить на этот вопрос нужно знать 1) Макс. размерность векторов (2D, 3D или вообще ND) 2) Предполагаемое количество операций с этими векторами в секунду 3) Что за диаграммы Вы собираетесь рисовать Если бы такого рода задача стояла бы передо мной, то я бы выбрал QtCreator+SQLite. Если же размерность векторов невелика (2-3D), то может стоит загружать их все в память (400...500 тыс. - это немного. Для 3D вектора с координатами с двойной точностью (double) - порядка 12 МБ) -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| tzirechnoy |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 2 Всего: 16 |
Зачем? 500 тыс. векторов, если считать размерность 10 и по 128-бит вещественному числу (16 байт) -- это будет 80 мегабайт. Весь Ваш массив вполне поместится в память роутера чуть вышэ среднего -- и тем более в память компьютэра. СУБД (ну, РСУБД) имеет смысл если есть нетривиальные реляцыонные отношэния между данными. Тогда писать выборки этих данных удобней под РСУБД. У вас они точно есть? А можэт -- нет, и всё полным перебором решается? Тем более, что полный перебор восьмидесяти метров памяти при эффективных алгоритмах займёт десяток милисекунд.
Сочувствую. Хотя, конечно, в качестве числодробилки у него много плюсов по сравнению с каждой алтэрнативой.
Ну, по поводу СУБД не будем -- Вы пока ни слова не сказали о том, зачем Вам СУБД. А IDE... Я бы посоветовал unix с классическим подходом. Да, несмотря на то, что кажэтся, что это операцыонная система -- это именно интэгрированная среда программирования, очень старая, но от того только помощневшая. Но Вы вроде привыкли к Builder? И ужэ решыли про C++? Так Вам незачем и менять свои привычки пока что. |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |