Конечно, давайте рассмотрим оба задания по очереди.
Задание 1: Поиск максимального элемента в массиве и количество его вхождений
Генерация массива:
- Сначала необходимо создать массив из 100 случайных целых чисел. Это можно сделать, используя генераторы случайных чисел, например, из библиотеки
random
в Python.
Поиск максимального элемента:
- Пройдите по всем элементам массива и найдите максимальный. Это можно сделать с помощью встроенной функции
max()
в Python.
Подсчет вхождений максимального элемента:
- После того как вы нашли максимальный элемент, необходимо пройти по массиву еще раз и подсчитать, сколько раз этот элемент встречается. Это можно сделать с помощью метода
count()
.
Пример на Python:
import random
# Генерация массива
array = [random.randint(0, 100) for _ in range(100)]
# Поиск максимального элемента
max_element = max(array)
# Подсчет вхождений максимального элемента
count_max = array.count(max_element)
print(f"Максимальный элемент: {max_element}")
print(f"Количество вхождений: {count_max}")
Задание 2: Операции с матрицами
Для выполнения операций с матрицами сначала нужно создать матрицы со случайными значениями. Затем, в зависимости от выбора операции пользователем, выполнить соответствующую операцию.
Транспонирование матрицы:
- Транспонирование матрицы заключается в замене строк на столбцы. Если матрица имеет размерность
m x n
, то транспонированная матрица будет иметь размерность n x m
.
Умножение матрицы на число:
- Каждый элемент матрицы умножается на заданное число.
Сложение двух матриц:
- Возможность сложения двух матриц существует только в случае, если они имеют одинаковую размерность. Сложение производится поэлементно.
Перемножение двух матриц:
- Матрицы могут быть перемножены, если количество столбцов первой матрицы равно количеству строк второй. Элемент результирующей матрицы в позиции
(i, j)
получается как скалярное произведение i
-й строки первой матрицы и j
-го столбца второй матрицы.
Пример на Python:
import random
def generate_matrix(rows, cols):
return [[random.randint(0, 10) for _ in range(cols)] for _ in range(rows)]
def transpose_matrix(matrix):
return list(map(list, zip(*matrix)))
def multiply_matrix_by_number(matrix, number):
return [[element * number for element in row] for row in matrix]
def add_matrices(matrix1, matrix2):
rows, cols = len(matrix1), len(matrix1[0])
return [[matrix1[i][j] + matrix2[i][j] for j in range(cols)] for i in range(rows)]
def multiply_matrices(matrix1, matrix2):
result = [[0 for _ in range(len(matrix2[0]))] for _ in range(len(matrix1))]
for i in range(len(matrix1)):
for j in range(len(matrix2[0])):
for k in range(len(matrix2)):
result[i][j] += matrix1[i][k] * matrix2[k][j]
return result
# Пример использования
matrix1 = generate_matrix(3, 3)
matrix2 = generate_matrix(3, 3)
print("Матрица 1:")
for row in matrix1:
print(row)
print("\nМатрица 2:")
for row in matrix2:
print(row)
# Пользователь выбирает операцию
operation = input("Выберите операцию: транспонирование (t), умножение на число (m), сложение (a), перемножение (p): ")
if operation == 't':
transposed = transpose_matrix(matrix1)
print("\nТранспонированная матрица 1:")
for row in transposed:
print(row)
elif operation == 'm':
number = int(input("Введите число для умножения: "))
multiplied = multiply_matrix_by_number(matrix1, number)
print("\nМатрица 1, умноженная на число:")
for row in multiplied:
print(row)
elif operation == 'a':
if len(matrix1) == len(matrix2) and len(matrix1[0]) == len(matrix2[0]):
added = add_matrices(matrix1, matrix2)
print("\nСумма матриц 1 и 2:")
for row in added:
print(row)
else:
print("Матрицы имеют разные размеры и не могут быть сложены.")
elif operation == 'p':
if len(matrix1[0]) == len(matrix2):
multiplied = multiply_matrices(matrix1, matrix2)
print("\nПроизведение матриц 1 и 2:")
for row in multiplied:
print(row)
else:
print("Матрицы не могут быть перемножены.")
else:
print("Неизвестная операция.")
Этот код позволяет выполнять различные операции с матрицами, предоставляя пользователю выбор.