Задачи для самостоятельного решения. 1.6.2.1. Быстрое возведение матрицы в натуральную степень

 

1.6.2.1. Быстрое возведение матрицы в натуральную степень. В первой строке задаётся натуральное число m – размер квадратной матрицы, во второй строке задаётся целое неотрицательное число n – степень в которую нужно возвести матрицу. Начиная с третьей строки, задаются элементы матрицы построчно – целые числа. Вычислить и напечатать результирующую матрицу.

Исходные данные:

1 0 0

0 1 0

0 0 1

Результат:

1 0 0

0 1 0

0 0 1

 

1.6.2.2. Определение заданных свойств матрицы. В первой строке задаются натуральные числа n и m – размеры прямоугольной матрицы. Начиная со второй строки, задаются элементы матрицы построчно – целые числа. Написать программу, которая напечатает «ДА», если в ней есть хотя бы одна строка, не содержащая отрицательные элементы. Если таких строк нет, то напечатать «НЕТ».

Исходные данные:

3 3

1 0 0

0 -1 0

0 0 1

Результат:

ДА

 

1.6.2.3. Определение заданных свойств матрицы. В первой строке задаются натуральные числа n и m – размеры прямоугольной матрицы. Начиная со второй строки, задаются элементы матрицы построчно – целые числа. Написать программу, которая напечатает «ДА», если в ней есть хотя бы одна строка, содержащая только отрицательные элементы. Если таких строк нет, то напечатать «НЕТ».

Исходные данные:

3 3

1 0 0

0 -1 0

0 0 1

Результат:

НЕТ

 

1.6.2.4. Определение заданных свойств матрицы. В первой строке задаются натуральные числа n и m – размеры прямоугольной матрицы. Начиная со второй строки, задаются элементы матрицы построчно – целые числа. Написать программу, которая напечатает «ДА», если в ней есть хотя бы одна строка, в которой все элементы идут строго по возрастанию. Если таких строк нет, то напечатать «НЕТ».

Исходные данные:

3 3

1 0 0

0 -1 0

0 0 1

Результат:

НЕТ

 

1.6.2.5. Определение заданных свойств матрицы. В первой строке задаются натуральные числа n и m – размеры прямоугольной матрицы. Начиная со второй строки, задаются элементы матрицы построчно – целые числа. Написать программу, которая напечатает «ДА», если в ней в каждой строке все элементы идут строго по возрастанию. Если таких строк нет, то напечатать «НЕТ».

Исходные данные:

3 3

1 2 3

-2 -1 0

0 2 10

Результат:

ДА

 

1.6.2.6. Определение заданных свойств матрицы. В первой строке задаются натуральные числа n и m – размеры прямоугольной матрицы. Начиная со второй строки, задаются элементы матрицы построчно – целые числа. Написать программу, которая найдёт и напечатает номер строки, в которой наименьшая сумма элементов. Если таких несколько, напечатать номера всех строк..

Исходные данные:

3 3

1 0 0

0 -1 0

0 0 1

Результат:

 

1.6.2.7. Копировать построчно прямоугольную матрицу размера n на m в одномерный массив из nm элементов. В первой строке задаются размеры матрицы n и m. В следующих строках задаётся матрица целых чисел. Напечатать элементы массива в одну строку.

Исходные данные:

3 3

2 2 4

2 3 6

2 1 7

Результат:

2 2 4 2 3 6 2 1 7

 

1.6.2.8. Копировать элементы одномерного массива в прямоугольную матрицу. В первой строке задаются размеры матрицы n и m. В следующих строках задаётся массив из nm целых чисел. Напечатать элементы матрицы построчно.

3 3

2 2 4 2 3 6 2 1 7

Результат:

2 2 4

2 3 6

2 1 7

 

1.6.2.9. В квадратной матрице посчитать и напечатать суммы на всех диагоналях одного направления (сверху слева вправо вниз). В первой строке задаётся размер матрицы n. В следующих строках задаётся матрица целых чисел. Напечатать полученные суммы в одну строку.

Исходные данные:

3 3

2 2 4

2 3 6

2 1 7

Результат:

2 3 12 8 4

 

1.6.2.10. В квадратной матрице посчитать и напечатать суммы на всех диагоналях одного направления (сверху справа влево вниз). В первой строке задаётся размер матрицы n. В следующих строках задаётся матрица целых чисел. Напечатать полученные суммы в одну строку.

Исходные данные:

3 3

2 2 4

2 3 6

2 1 7

Результат:

2 4 9 7 7

 

1.6.2.11. В прямоугольной матрице посчитать и напечатать суммы на всех диагоналях одного направления (сверху слева вправо вниз). В первой строке задаются размеры матрицы n и m. В следующих строках задаётся матрица целых чисел. Напечатать полученные суммы в одну строку.

Исходные данные:

3 5

2 2 4 1 2

2 3 6 2 1

2 1 7 1 1

Результат:

2 3 12 9 7 2 2

 

1.6.2.12. Проверить, что все элементы в прямоугольной матрице из 0 и 1 расположены в шахматном порядке. В первой строке задаются размеры матрицы n и m. В следующих строках задаётся матрица целых чисел. Напечатать «ДА», если это так и «НЕТ» в противном случае.

Исходные данные:

3 3

0 1 0

1 0 1

0 1 1

Результат:

НЕТ

 

1.6.2.13. Приведение квадратной матрицы к треугольному виду. В первой строке задаётся размер матрицы n. В следующих строках задаётся матрица целых чисел. Напечатать матрицу в треугольном виде, если это получается. В противном случае напечатать слово «НЕТ».

Исходные данные:

2 2 4

2 3 6

2 1 7

Результат:

1 1 2

0 1 2

0 0 5

 

1.6.2.14. СЕДЛОВЫЕ ТОЧКИ. Найти все элементы прямоугольной матрицы, которые одновременно являются наибольшими в своей строке и наименьшими в своем столбце или наоборот. В первой строке задаются размеры матрицы n и m. В следующих строках задаётся матрица целых чисел. Напечатать в отдельных строках позиции седловых точек – номер строки и столбца.

Исходные данные:

3 4

7 6 9 8

2 3 5 1

2 1 6 9

Результат:

1 2

2 3

 

1.6.2.15. Проверить судоку. Проверить, что в матрице 9 на 9 числа расставлены по правилам судоку: в каждой строке, каждом столбце и в каждом фрагменте 3 на 3 встречаются все цифры от 1 до 9. Если числа расставлены правильно, то напечатать «ДА», в противном случае напечатать «НЕТ».

Исходные данные:

6 7 9 8 4 2 5 3 1

8 3 5 1 6 7 4 2 9

2 1 4 9 3 5 7 6 8

7 6 8 5 1 3 9 4 2

3 4 2 6 8 9 1 5 7

5 9 1 7 2 4 3 8 6

9 8 6 3 5 1 2 7 4

1 2 3 4 7 8 6 9 5

4 5 7 2 9 6 8 1 3

Результат:

ДА

 

1.6.2.16. Для заданного размера n построить магический квадрат порядка n (суммы в каждой - строке, в каждом столбце, на главной и побочной диагоналях равны и в матрице используются все натуральные числа от 1 до n2)

Исходные данные:

Результат:

2 7 6

9 5 1

4 3 8

 

1.6.2.17. В квадратной матрице переставить элементы, чтобы она повернулась на 180 градусов. В первой строке задаётся размер матрицы n. В следующих строках задаётся матрица целых чисел. Напечатать матрицу после поворота.

Исходные данные;

1 2 3

4 5 6

7 8 9

Результат

9 8 7

6 5 4

3 2 1

 

1.6.2.18. В квадратной матрице переставить элементы, чтобы она повернулась на 90 градусов по часовой стрелке. В первой строке задаётся размер матрицы n. В следующих строках задаётся матрица целых чисел. Напечатать матрицу после поворота.

Исходные данные;

1 2 3

4 5 6

7 8 9

Результат

7 4 1

8 5 2

9 6 3

 

1.6.2.19. Для заданного элемента найти сумму всех чисел, которые стоят с ним в одной строке, одном столбце или на одной диагонали. В первой строке задаётся размер матрицы n. В следующих n строках задаётся квадратная матрица целых чисел по n чисел в строке. В следующей строке задаются номер строки и номер столбца некоторого элемента. Напечатать описанную сумму для этого элемента.

Исходные данные;

1 2 3

4 5 6

7 8 9

2 3

Результат:

 

1.6.2.20. Решение 2-х диагональной системы. Система линейных алгебраических уравнений имеет вид:

a1,1 x1 + a1,2 x2 = b1

a2,2 x2 + a2,3 x3 = b2

...

an,n xn = bn

В первой строке задано натуральное число n – размер системы. Следующие n-1 строки содержат по 3 вещественных числа - a1,1 a1,2 b1 a2,2 a2,3 b2 … В последней строке 2 вещественных числа - an,n bn. Вывести в одну строку через пробел n вещественных чисел с точностью 3 знака – решение системы уравнений, если оно существует. В противном случае напечатать слово НЕТ.

Исходные данные:

1 1 2

1 1 2

1 1

Результат:

1.000 1.000 1.000

 

1.6.2.21. Решение 3-х диагональной системы. Система линейных алгебраических уравнений имеет вид:

a1,1 x1 + a1,2 x2 = b1

a2,1 x1 + a2,2 x2 + a2,3 x3 = b2

...

an,n-1 xn-1 + an,n xn = bn

В первой строке задано натуральное число n – размер системы. Во второй строке заданы 3 вещественных числа - a1,1 a1,2 b1. Следующие n-2 строки содержат по 4 вещественных числа - a2,1 a2,2 a2,3 b2 ,… В последней строке 3 вещественных числа - an,n-1 an,n bn. Вывести в одну строку через пробел n вещественных чисел с точностью 3 знака – решение системы уравнений, если оно существует. В противном случае напечатать слово НЕТ.

Исходные данные:

1 1 2

1 1 1 2

1 1 2

Результат:

1.000 1.000 1.000

 

1.6.2.22. Печать элементов по спирали. Из заданной прямоугольной матрицы напечатать элементы, начиная с правого верхнего угла и по часовой стрелке в направлении центра матрицы. В первой строке задаются размеры матрицы – натуральные числа n и m. В следующих n строках записано по m целых чисел – сама матрица. Напечатать все числа в одну строку.

Исходные данные:

3 4

1 2 3 4

5 6 7 8

9 0 1 2

Результат:

1 2 3 4 8 2 1 0 9 5 6 7

 

- расстояние между двумя позициями при движении по спирали

 

- Поменять крылья бабочки в матрице

 

- сумма элементов при движении зигзагом из заданной позиции

 

Продвинутые задачки.

 

1.6.3.1. Написать программу, которая будет вычислять определитель матрицы порядка N.

В первой строке задаётся размер матрицы N, а в последующих - сама матрица.

Исходные данные:

1 0 1

0 0 1

1 1 1

Результат:

-1

 

1.6.3.2. Написать программу, которая будет вычислять обратную матрицу, если она существует. В первой строке задаётся натуральное число n – порядок квадратной матрицы A. Далее построчно записана сама матрица целых чисел A, элементы в строке разделены одним пробелом. Вычислить и напечатать обратную матрицу B, т.е. квадратную матрицу порядка n такую, что произведение A*B = E (где Е – единичная матрица). Если обратная матрица не существует, напечатать -1.

Исходные данные:

1 1

0 1

Результат:

1 -1

0 1

 

1.6.3.3. Написать программу, которая будет вычислять решение системы линейных уравнений методом Гаусса, если оно существует. В первой строке задаётся натуральное число n – порядок системы. Далее построчно записаны n целых коэффициентов очередного уравнения системы и ещё одно целое число – свободный член из правой части уравнения. Все числа разделены одним пробелом. Вычислить и напечатать решение этой системы. Если решение не существует, напечатать -1.

Для системы

x1 + x2 = 2

x2 = 1

Исходные данные:

1 1 2

0 1 1

Результат:

1 1

 

1.6.3.4. Количество элементов между двумя заданными при движении по спирали. В первой строке заданы натуральные размеры прямоугольной матрицы n и m (1 <= n, m <= 1000). Во второй и третьей строке заданы по два натуральных числа – номера строк и столбцов двух элементов в этой матрице. Найти количество элементов, находящихся между этими элементами, если движение проводить по спирали по часовой стрелке, начиная с левого верхнего угла. Начальный и конечный элементы включать в это количество.

Исходные данные:

3 7

1 2

3 3

Результат:

Примечание. Заполним матрицу для наглядности последовательными числами от 1 до nm.

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

При движение от элемента А (1, 2) = 2 до элемента А (3, 3) = 17 будут пройдены такие числа: 2 3 4 5 6 7 14 21 20 19 18 17. Итого 12 чисел.

 

1.6.3.5. В прямоугольной матрице целых чисел размера N на M найти прямоугольник самой большой площади, состоящий только из единиц, и напечатать эту площадь (Площадь = количество строк * количество столбцов). В первой строке задаются числа N и M, а в последующих - сама матрица.

Исходные данные:

3 4

1 0 1 1

0 0 1 1

1 0 0 0

Результат:

 

1.6.3.6. В прямоугольной матрице целых чисел размера N на M найти прямоугольник с наибольшей суммой и напечатать эту сумму. В первой строке задаются числа N и M, а в последующих строках - сама матрица.

Исходные данные:

3 4

1 -2 3 2

2 3 -4 1

3 -5 3 0

Результат:

 

1.6.3.7. ПЕЧАТЬ ВСЕХ МИНОРОВ. В квадратной матрице размера N* N распечатать в виде матриц все миноры N-1-го порядка. В первой строке задаётся размер матрицы N, а в последующих - сама матрица.

Исходные данные:

1 2

3 4

Результат:

1 2 3 4

 

1.6.3.8. ПЕЧАТЬ ВСЕХ МИНОРОВ. В матрице размера N на M распечатать в виде матриц все миноры порядка K. В первой строке задаются числа N, M, К, а в последующих - сама матрица.

Исходные данные:

3 4 3

1 2 3 2

2 3 4 1

3 5 8 0

Результат:

1 2 3 1 2 2 1 3 2 2 3 2

2 3 4 2 3 1 2 4 1 3 4 1

3 5 8 3 5 0 3 8 0 5 8 0

 

Нефтяные месторождения. Дана сетка M на N клеток (матрица символов), в каждой из которых есть нефть ("*") или нет нефти ("."). Если две соседние по сторонам клетки содержат нефть, то они принадлежат одному месторождению. Найти количество месторождений на заданной сетке и напечатать размер самого большого из них (количество нефтяных клеток). В первой строк задаются размеры матрицы M и N, а в следующих строках сама матрица.

Исходные данные:

5 7

**...**

*..*...

..****.

....*..

....**.

Результат:

3 8

 

1.6.3.10. Матрицы. Надо узнать определенный элемент произведения нескольких матриц. Все вычисления ведутся по модулю некоторого простого числа p, то есть если при арифметических операциях получается число, большее, либо равное p, оно заменяется на остаток при делении на p. В первой строчке стоят два числа: m - количество матриц, n - размер каждой из матриц (1 <= m <= 200, 1 <= n <= 200). В следующей строчке содержатся номер строки и столбца, интересующего элемента 1 <= a <= n, 1 <= b <= n. В третьей строке содержится простое число p <= 1000. Далее следует описание m матриц. Описание каждой матрицы состоит из n строк. В каждой из строк содержится n неотрицательных целых чисел, меньших p. Соседние числа в строке разделены пробелом. Вывести нужный элемент произведения матриц.

Исходные данные:

3 2
1 2
239
1 2
3 4
4 2
1 3
1 2
2 1

Результат:

 

1.6.3.11. Табличка Дана табличка, состоящая из N строк и M столбцов. В каждой клетке таблицы стоит либо 0, либо 1. Расстоянием между клетками (x1,y1) и (x2,y2) называется |x1-x2|+|y1-y2|. Вам нужно построить другую таблицу, в которой в каждой клетке стоит расстояние от данной до ближайшей клетки, содержащей 1 (в начальной таблице). Гарантируется, что хотя бы одна 1 в таблице есть. В первой строке содержатся два натуральных числа, не превосходящих 100 - N и M. Далее идут N строк по M чисел - элементы таблицы. Вывод должен содержать N строк по M чисел - элементы искомой таблицы.

Исходные данные:

2 3
0 0 1
1 0 0

Результат:

1 1 0
0 1 1

 

1.6.3.11. Морской бой. Дано прямоугольное поле размера n на m для игры в морской бой, на котором расставлены несколько боевых кораблей. Каждый корабль состоит из нескольких палуб (клеток) расположенных в линию (горизонтальную или вертикальную). Корабли не могут иметь общих точек (касаться). Найти место для нового корабля из 3-х палуб. В первой строке задаются размеры поля – числа n и m. В каждой из следующих n строк записано m символов: Х – палуба какого-то корабля и . (точка) – пустая клетка. Вывести это же поле с размещённым на нём новым кораблём. Палубы нового корабля выводить символом *.

Исходные данные:

4 4

ХХ..

....

Х...

Х...

Результат:

ХХ..

...*

Х..*

Х..*