векторы повторения чисел в группе 20 матриц
матрицы заполнены числами от 0 до 100
нужно сделать список всех векторов повторений цифр в числах
например есть числа в разных матрицах ->
12 25 34 10
06 40 42 15
33 14 17 77
02 24 18 90
векторами будут числа
12 -25 12 -42 25 -15 40 -42
02 -24 17 -77 10 -06 15 -14 34 -40
и так далее по этой логики отбора данных пар чисел
=>
Это интересная задача
Чтобы решить ее, я предлагаю следующий алгоритм кода:
Создайте пустой список vectors для хранения векторов повторений.
Создайте пустой словарь num_to_indices для хранения индексов матриц, где встречается каждое число.
Переберите каждую матрицу и для каждого числа в ней:
Если число уже есть в num_to_indices, то добавьте к соответствующему списку индексов текущий индекс матрицы.
Если числа нет в num_to_indices, то создайте для него новый список индексов с текущим индексом матрицы.
Переберите каждый список индексов в num_to_indices и для каждого списка:
Создайте все возможные пары индексов из списка (например, если список индексов [0, 1, 2], то пары будут (0, 1), (0, 2), (1, 2)).
Для каждой пары индексов создайте вектор повторений, используя соответствующие значения из матриц по индексам.
Добавьте вектор повторений в список vectors.
Возвращайте список vectors.
Вот пример кода на Python, реализующий этот алгоритм:
*
import itertools
# матрицы 10x10 с числами от 0 до 100
matrices = [... 20 matrices ...]
vectors = []
num_to_indices = {}
for i, matrix in enumerate(matrices):
for j, num in enumerate(matrix):
if num not in num_to_indices:
num_to_indices[num] = [i]
else:
num_to_indices[num].append(i)
for num, indices in num_to_indices.items():
pairs = list(itertools.combinations(indices, 2))
for pair in pairs:
matrix1 = matrices[pair[0]]
matrix2 = matrices[pair[1]]
vector = (matrix1[j], matrix2[j])
vectors.append(vector)
print(vectors)
*
В этом коде мы используем библиотеку itertools для создания всех возможных пар индексов из списка индексов.
Затем мы создаем вектор повторений, используя соответствующие значения из матриц по индексам.
Обратите внимание, что в этом коде мы предполагаем, что матрицы хранятся в списке matrices, а каждый элемент списка - это отдельная матрица 10x10.
Если ваш формат данных отличается, вам нужно будет адаптировать код соответственно.
Свидетельство о публикации №124111704229