Эффективный код для определения, является ли набор подмножеством другого набора

Я ищу эффективный способ определить, является ли набор подмножеством другого набора в Matlab или Mathematica.

Пример: Установите A = [1 2 3 4] Установите B = [4 3] Установить C = [3 4 1] Set D = [4 3 2 1]

Результат должен быть следующим: Set A

Наборы B и C принадлежат набору A, потому что A содержит все их элементы, поэтому их можно удалить (порядок элементов в набор не имеет значения). Набор D имеет те же элементы, что и набор A, и поскольку набор A предшествует набору D, я хотел бы просто сохранить набор A и удалить набор D.

Итак, есть два важных правила: 1. Удалите набор, если он является подмножеством другого набора. 2. Удалите набор, если его элементы совпадают с элементами предыдущего набора.

Мой код Matlab не очень эффективен для этого - он в основном состоит из вложенных циклов.

Предложения очень приветствуются!

Дополнительные объяснение: проблема в том, что при большом количестве наборов будет очень большое количество парных сравнений.

11
задан Eduardas 12 October 2010 в 22:25
поделиться