![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.10.2016
Сообщений: 27
|
![]()
Вычисляется коэффициент отбора матриц, который из 20000 матриц отбирает матриц в пределах от 800 до 1600, матрицы размерности 34 на n, где n=2..100, для каждого n нужно посчитать этот коэффициент. Помогите посчитать или оптимизировать код.
Код:
Последний раз редактировалось Ar2emiS; 09.11.2016 в 15:14. |
![]() |
![]() |
![]() |
#2 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
![]()
что именно не так? памяти не хватает? слишком долго работает? и код отформатировал бы, читать же невозможно
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 18.10.2016
Сообщений: 27
|
![]()
Слишком долго работает. Для n=2..30 считал коэффициенты около 15 часов.
|
![]() |
![]() |
![]() |
#4 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.10.2016
Сообщений: 27
|
![]()
Матрицы из 0 и 1, различие между матрицами рассчитывается как расстояние между матрицами в евклидовом пространстве (D=sqrt(sum(sum(m1(i,j)-m2(i,j)))) )
Максимальное расстояние между матрицами равно D0=sqrt(k*n), то есть если рассмотреть две матрицы, одну полностью из 0,а вторую из 1. Но в общем случае, когда матрица заполнена случайным образом из 0 и 1,то ввожу параметр а, который ,очевидно меняется от 0 до 1, но этот интервал, можно урезать от 0.5 до 0.9. Тогда расстояние,которое обеспечивает отбор нужного количества матриц, представлена как D0=а*sqrt(k*n). Условие отбора матриц D>D0. Задача состоит в том,что найти параметры а для всех n. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
![]()
1) У тебя ошибки выдаёт? У меня компилятор новый, поэтому он может реагировать на то, на что твой не стал бы (я это к тому, что может это не ошибки, а отличие стандартов, поддерживаемых компиляторами):
1.jpg 2) Попробуй узнать уское место в программе... Т.е. запусти её, а потом в любое время (но не сразу) приостанови (останови методами отладки): 2.jpg Но только не один раз, а нужна статистика остановов (и в разное время от запуска программы). А ты в чём программируешь? В какой среде? |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 18.10.2016
Сообщений: 27
|
![]()
1) ошибок не выдает. Да, там одиночное равно.
pelles c |
![]() |
![]() |
![]() |
#8 |
мальчик-помогай =)
Форумчанин
Регистрация: 16.09.2010
Сообщений: 522
|
![]()
По идеи, расстояние между матрицами А и В можно выразить через их расстояние до "нулевой матрицы", а это расстояние можно найти при создание матриц (и хранить "рядом" с матрицей).... расстояние сведётся к sqrt(dA * dA + dB * dB), что намного быстрее "поэлементного" вычитания матриц....... т. к D нужно только тут, то хранить можно только его квадрат, что ещё немного ускорит процесс
Увы, остальное я не совсем понял, поэтому пока только это Последний раз редактировалось GreenWizard; 09.11.2016 в 15:51. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 18.10.2016
Сообщений: 27
|
![]()
спасибо, рассмотрю и этот вариант.
|
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
![]()
1) Я посмотрел, вроде твой pelles c отладку не поддерживает (ну разве что, для запуска программы, можешь попробовать "F5" . Появится ли кнопка приостановить программу?)
2) Подсчитай сколько памяти займёт программа в самый нагруженный момент (типы данных у тебя есть. количество элементов в массивах - тоже, количество массивов - тоже). Сравни со своей оперативкой. 3) Запусти программу и Мониторинг ресурсов одновременно (я не знаю твою операционку, но обычно Ctrl+Alt+Dell). Может у тебя не хватает памяти для размещение всех этих массивом? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
посчитать количество нулевых элементов двух матриц с помощью функции. Паскаль | gravitono | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 18.04.2016 17:22 |
Перевод мощности в плотность мощности | ImmortalAlexSan | Свободное общение | 9 | 20.02.2014 22:45 |
Нуждаюсь, язык С, С числовой множества A мощности n выбрать все подмножества, сумма элементов каждого из которых лежит в пределах | FYNZIK | Помощь студентам | 0 | 16.02.2014 21:00 |
С++ Вычисление матриц | VladJAy | Помощь студентам | 2 | 10.12.2012 00:04 |
Вычисление матриц (delphi) | artimed | Помощь студентам | 0 | 16.05.2012 13:21 |