Все способы переплетения двух массивов 1D, сохраняя порядок элементов каждого массива - PullRequest
0 голосов
/ 20 сентября 2019

Рассмотрим два numpy массива a и b . a - некоторая перестановка целых чисел от 1 до 5, в то время как b - некоторая перестановка целых чисел от -5 до -1.

a = [ 1  3  4  2  5]
b = [-4 -3 -5 -1 -2]

Я хочу найти все массивы c , которые содержат 10 значений a и b , но порядок как a , так и b элементы должны быть сохранены.

Пример допустимого c:

c = [1 3 -4 -3 -5 4 2 -1 5 -2]

Пример неверного c: (-5 и -3 нарушают шаблон)

c = [1 3 -4 -5 -3 4 2 -1 5 -2]

Я нашел много случаев в stackoverflow, когда элементы массива чередуются чередующимся образом, но они здесь не применяются.Возможный подход может состоять в том, чтобы сгенерировать все одномерные массивы из пяти 0 и пяти 1 следующим образом:

[0 0 1 1 1 0 0 1 0 1]

Каждый 0 будет означать значение «next» a , а каждый 1 будет указыватьзначение 'next' b .

Я надеюсь, что будет эффективный способ справиться с этим.

...