2012-08-17 6 views
0

Я просматриваю все возможные пути по графику. Я написал алгоритм DFS, который находит все эти пути. Я хочу убедиться, что мой алгоритм работает правильно и что два пути не идентичны. Мой алгоритм возвращает список, который выглядит следующим образом:R сравнить все элементы списка для дубликатов

.... 
[[2770]] 
[1] 1 2 3 52 53 54 55 56 57 58 59 60 12 11 10 9 8 78 79 80 113  114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 
[38] 130 131 132 133 134 137 138 139 140 141 142 143 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 

[[2771]] 
[1] 1 2 3 52 53 54 55 56 57 58 59 60 12 11 10 9 8 78 79 80 113 114 115 143 144 145 146 147 148 149 150 151 152 153 154 155 156 
[38] 157 158 159 160 161 162 163 164 165 166 

[[2772]] 
[1] 1 2 3 52 53 54 55 56 57 58 59 60 12 11 10 9 8 78 79 80 113 114 115 143 150 151 152 153 154 155 156 157 158 159 160 161 162 
[38] 163 164 165 166 

Как вы можете видеть, список состоит из 2772 элементов. Это означает, что через этот график имеется 2772 пути. Как я могу легко сравнить все элементы списка, чтобы убедиться, что дубликатов нет. Чтобы быть ясным, один и тот же набор чисел, но в другом порядке, представляет собой другой путь и не является дубликатом!

Благодарим за помощь!

ответ

5

может быть что-то вроде

test<-list(1:2,3:4,5:7,1:10,3:4,4:3) 
dups<-duplicated(test) 
idups<-seq_along(test)[dups] 
+4

'anyDuplicated' будет быстрее проверить, так как он только возвращает расположение _first_ дубликата. –

Смежные вопросы