Shuffle матрицы

Виталий17 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
11.01.2010

Дана матрица X*Y

ее элементы частично заполнены некими значениями

Надо переставить значение из рандомной n-ной строки в m-ную этого же столбца на свободное место (если место занято, то итерацию повторить с другой строкой),

а из m-ной строки другого рандомного столбца (кроме того столбца, куда перетащили) переставить в n-ную строку выбранного столбца (если место занято, то повторить с другим столбцом m-ной строки).

Кол-во итераций задается вручную.

По горизонтали матрица разделена на воображаемые три группы разной размерности (по сумме столбцов дающих X)

Например, X=20; группа1: 5, группа2: 9, группа3: 6

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

То есть можем перетащить еденицу из группы1[4] в группу2[4] или группу3[4], если там свободно. Но не можем перетащить из группы2[8] в группу1[8], т.к. группа1[8] не существует.

Кол-во итераций задается вручную.

Таким образом, количество элементов в каждом столбце и строке остается таким же, как исходное.

На вход программе подается файл в csv-формате, где в первой строке для каждого столбца задается название группы.

Заявки фрилансеров