|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
||||||
Умножение матриц27.01.2018, 18:52. Показов 5079. Ответов 19
Метки нет (Все метки)
Помогите найти ошибку плз.
Задание: Аня недавно узнала, что такое квадратная матрица размерности n. Это таблица n×n с целыми числами в ячейках. Число, стоящее на пересечении i-ой строки и j-ого столбца матрицы A, кратко обозначается A[i, j]. Матрицы можно умножать, и Аня быстро освоила, как запрограммировать эту операцию с помощью циклов. Результатом умножения двух матриц A и B будет матрица C, элементы которой определяются следующим образом: Матрицы ей понадобились для конкретной задачи, в которой надо узнать определенный элемент произведения нескольких матриц. Это уже достаточно сложная задача для Ани, но она усложняется тем, что все вычисления ведутся по модулю некоторого простого числа p, то есть если при арифметических операциях получается число, большее, либо равное p, оно заменяется на остаток при делении на p. Помогите Ане вычислить нужный ей элемент. Входные данные В первой строчке входного файла INPUT.TXT стоят два числа: m - количество матриц, n - размер каждой из матриц (1 ≤ m ≤ 130, 1 ≤ n ≤ 130). В следующей строчке содержатся номер строки и столбца, интересующего Аню элемента 1 ≤ a ≤ n, 1 ≤ b ≤ n. В третьей строке содержится простое число p ≤ 1000. Далее следует описание m матриц. Описание каждой матрицы состоит из n строк. В каждой из строк содержится n неотрицательных целых чисел, меньших p. Соседние числа в строке разделены пробелом, а перед каждой матрицей пропущена строка. Выходные данные В выходной файл OUTPUT.TXT выведите нужный Ане элемент произведения матриц. при ручном тестировании все работает - программа выдает правильные ответы. А вот при автоматическим тестировании через сайт - выдает неправильный ответ. Подозреваю подвох где то в работе с потоками, но никак не могу обнаружить где именно. Заранее спасибо
0
|
||||||
| 27.01.2018, 18:52 | |
|
Ответы с готовыми решениями:
19
Умножение матриц Умножение Матриц Умножение матриц |
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 27.01.2018, 18:58 | |
|
0
|
|
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
|
| 27.01.2018, 19:00 [ТС] | |
|
Нужно выполнить умножение очень быстро.
Рассчитываю что потоки ускорят процесс.
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 27.01.2018, 19:06 | |
|
xolyspirit, вроде нужен один элемент, зачем матрицы целиком перемножать?
1
|
|
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
|
| 27.01.2018, 19:08 [ТС] | |
|
мысль интересная, но слабо представляю как ее реализовать
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 27.01.2018, 19:13 | |
|
Считываешь матрицу, берешь нужный элемент в переменную, считываешь следующую матрицу, берешь нужный элемент, перемножаешь, считываешь следующую....
Добавлено через 40 секунд Один цикл Добавлено через 2 минуты Кидани сюда пример входного файла
0
|
|
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
|
| 27.01.2018, 19:18 [ТС] | |
|
3 2
1 2 239 1 2 3 4 4 2 1 3 1 2 2 1 Кажись понял, сейчас попробую реализовать
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 27.01.2018, 19:27 | |
|
Я думал, там матриц 100500
![]() Добавлено через 6 минут xolyspirit, смотри - дано: 3 матрицы, 2х2 нужный элемент - [1][2] это как? считают с 1?
0
|
|
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
|
| 27.01.2018, 19:28 [ТС] | |
|
да, считают с 1.
это 1 строка 2 столбик
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
||||||
| 27.01.2018, 19:30 | ||||||
|
Ну, тогда типа...
0
|
||||||
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
|
| 27.01.2018, 19:33 [ТС] | |
|
Это же матрицы. Их нельзя так умножать.
Надо умножать всю строку на весь столбик
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 27.01.2018, 19:35 | |
|
Можно вообще матрицы не считывать, кстати
![]() Добавлено через 1 минуту xolyspirit, я лошара, согласен
0
|
|
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
|
| 27.01.2018, 20:04 [ТС] | |
|
идеи закончились?)
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 27.01.2018, 20:08 | |
|
Идея та же, формулу поменять надо
0
|
|
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 27.01.2018, 22:22 | |
|
0
|
|
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
|||||||||||
| 27.01.2018, 23:14 [ТС] | |||||||||||
|
Ну это ведь просто набор для образца. Во время тестирования там совсем другого размера наборы, но составленные по тем же правилам.
Добавлено через 2 минуты Вариант с потоками и меня вполне получился. На моей машине запускается и отрабатывает норм, а вот во время тестирования на сервера почему то бросает рантайм.
Есть еще один вариант этой программы. Но он тоже почему то бросает рантайм на сервере.
0
|
|||||||||||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||
| 28.01.2018, 02:27 | ||
Сообщение было отмечено xolyspirit как решение
РешениеДалее, у тебя по итогу сложность алгоритма О(m*n*n*n), хотя если порисуешь на бумажке как все вычисляется, быть может придешь к О(m*n*n) И последнее, BufferedReader вместо Scanner. Разница мягко говоря на порядок. В 10м тесте одно только чтение выходит за таймлимит
1
|
||
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
||||||
| 28.01.2018, 23:10 [ТС] | ||||||
|
Спасибо, вечером попробую.
Добавлено через 15 часов 19 минут Переделал под использование BufferedReaderа. Но явно опять что то сделал не так. ибо теперь приложение жрет уйму памяти.
0
|
||||||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|
| 28.01.2018, 23:23 | |
|
1
|
|
|
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
|
|
| 28.01.2018, 23:33 [ТС] | |
|
После оптимизации все заработало как надо.
Строки строит считывать по отдельности, так тратиться на порядок меньше памяти. Всем советчикам - спасибо.
0
|
|
| 28.01.2018, 23:33 | |
|
Помогаю со студенческими работами здесь
20
Умножение матриц Умножение двух матриц Умножение двух матриц А и Б Умножение матриц: многопоточность Умножение неквадратных матриц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|