Как получить характеристический вектор множества?

У меня есть универсальное множество string[] universal и есть множество А - string[] mna К примеру универсальное множество состоит из элементов (1, 2, 3, 4, 5), а множество А содержит элементы (1, 2, 4) В ответе я должен получить множество (1, 1, 0, 1, 0). Как это можно реализовать?


Ответы (1 шт):

Автор решения: tym32167

Смысл решения в том, чтобы проверить вхождение элемента из universal в mna

var universal = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
var mna = new int[] {1, 4, 7};

var vector = new int[universal.Length];
var set = new HashSet<int>(mna);

for(var i=0; i<vector.Length; i++)  
    vector[i] = set.Contains(universal[i]) ? 1 : 0;

Console.WriteLine(string.Join(",", vector));    

Вывод

1,0,0,1,0,0,1,0
→ Ссылка