Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 10.05.2012
Сообщений: 13

Представление матрицы в виде векторов Айлиффа

21.04.2013, 17:59. Показов 3033. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно реализовать представление матрицы методом Айлиффа. С принципом ознакомился но как реализовать не знаю
http://samoucka.ru/document24926.html
Хелп плис. Если можно маленький пример с матрицей 2 на 2 или 4 на 4 на c# или на с++.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2013, 17:59
Ответы с готовыми решениями:

Представление изображения в виде матрицы
добрый день мне нужно в языке с # при загрузке бмп изображения в picturebox чтобы оно переделалось в матрицу и при нажатий на любую точку...

Как умножить две матрицы в виде векторов?
Подскажите пж фрагмент кода как перемножить две матрицы представленых ввиде векторов #include <stdio.h> #define ROWS 5 ...

Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности
Нужно задать граф списком ребер и вывести его в виде матрицы смежности. Знаю что в i строке j столбце ставят 1 если между вершинами i...

4
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
22.04.2013, 01:00
Прочитал. Не увидел разницы между методом Айлиффа и банальным вложением указателей. Суть, похоже, одинаковая -- экономия на умножении при адресации за счет выделения дополнительной памяти.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// указатель на указатели на интеджер
int **matrix;
 
// Создание и заполнение случайными числами
// создание первого массива
matrix = new int*[10];
for (int i = 0; i < 10; ++i) {
  // создание вложенных массивов
  matrix[i] = new int[10];
  // заполнение значений случайными числами 
  for (int j = 0; j < 10; ++j) {
    matrix[i][j] = rand() % 10;
  }
}
 
// обычное обращение
std::cout << matrix[2][2] << std::endl;
 
// удаление
for (int i = 0; i < 10; ++i) {
  delete [] matrix[i];
}
delete [] matrix;
2
1 / 1 / 0
Регистрация: 10.05.2012
Сообщений: 13
22.04.2013, 22:59  [ТС]
Есть ли разница в скорости обращения с матрицей в таком виде?
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
23.04.2013, 08:50
Цитата Сообщение от stopanko Посмотреть сообщение
Есть ли разница в скорости обращения с матрицей в таком виде?
Сравнивая с чем? С обычной int[H][W]? Как-то не замерял, но должна быть. Замерьте и расскажите.
0
1 / 1 / 0
Регистрация: 10.05.2012
Сообщений: 13
24.04.2013, 13:13  [ТС]
Замерял время - разница очень маленькая. Увеличить размерность нельзя 254 - максимум 260 - уже ошибка
(First chance exception at $75A8812F. Exception class EStackOverflow with message 'Stack overflow'. Process Allif.exe (904))
Error




Есть ли более точные методы для вычисления времени работы кода или как увеличить размерность?

Code

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
int _tmain(int argc, _TCHAR* argv[])
{
 
DWORD start; // дпочаткове запамят часу
DWORD d1, d2;// різниця в часі
int n = 254;
int m = 254;
int Rmas1[254][254];// масив результатів 1
int Rmas2[254][254];// масив результатів 2
int mas1[254][254];// масив для операцій перший
int mas2[254][254];// масив для операцій друугий
int **matrix1; //головний масив 1
int **matrix2; //головний масив 2
 
  /////////////
 
  for (int i = 0; i < n; i++) {
           for (int j = 0; j < m; j++) {
           mas1[i][j] = random(n);
           mas1[i][j] = random(m);
           }
 
       }
 
 
      matrix1 = new int*[n];
       for (int i = 0; i < n; i++) {
           matrix1[i] = new int[m];
           for (int j = 0; j < m; j++) {
                matrix1[i][j] = random(m);
                //cout<<matrix1[i][j]<<" ";
 
           }
           cout<<"\n";
       }
 
       matrix2 = new int*[n];
       for (int i = 0; i < n; i++) {
           matrix2[i] = new int[m];
           for (int j = 0; j < m; j++) {
                matrix2[i][j] = random(m);
                //cout<<matrix2[i][j]<<" ";
 
           }
           cout<<"\n";
       }
 
 
 
       start = GetTickCount(); //Старт
       for (int i = 0; i < n; i++) {
           for (int j = 0; j < m; j++) {
           Rmas1[i][j] = mas1[i][j] + mas2[i][j];
           //cout<<Rmas1[i][j]<<" ";
           }
           cout<<"\n";
       }
       d1 = (GetTickCount()-start);
  ////////////////
 
  start = GetTickCount();
       for (int i = 0; i < n; i++) {
           for (int j = 0; j < m; j++) {
           Rmas2[i][j] = matrix1[i][j] + matrix2[i][j];
            //cout<<Rmas2[i][j]<<" ";
            }
            cout<<"\n";
       }
       d2 = (GetTickCount()-start);
 
 
//d1 = (GetTickCount()-start);
/*for (int i = 0; i < n; i++)
{
  delete[] matrix1[i];
  delete[] matrix2[i];
}*/
//Ob.init(int &mas1, 10, 10);
    cout<<"d1= "<<d1<<" d2= "<<d2;
getch();
}
Миниатюры
Представление матрицы в виде векторов Айлиффа  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2013, 13:13
Помогаю со студенческими работами здесь

Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности
Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности. Возникла проблема,в...

Адресация методом Айлиффа
Необходимо создать адресацию в 4-х мерном массиве(base) методом Aйлиффа. Вот чето не фурычит, ошибка памяти при запуске. #include...

Представление файла в hex виде
if (OpenDialog1-&gt;Execute()) fn = OpenDialog1-&gt;FileName; wchar_t *t = fn.c_str(); std::ifstream fin(t, std::ios_base::in |...

Представление Lotus-БД в виде диаграмм.
Напишите, пожалуйста, в каком виде можно представить базы данных Lotus, в виде каких диаграмм? Это ведь нереляционные БД. Как...

Представление числа N в виде K слагаемых
Задача для языка С: Составить программу, которая печатает все различные представление числа N в виде всевозможных произведений (сумм) K...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru