У меня есть следующая проблема: мне нужно создать таблицу, которая представляет собой комбинацию значений, исходящих из наборов. Мощность элементов в наборе неизвестна и может варьироваться от множества к множеству, область значений неизвестна и может также варьироваться от множества к множеству. Элементы в наборе неотрицательны, по крайней мере два элемента находятся внутри набора. Далее следует пример:Создание небулевой «таблицы истинности»
- SET_A = {0, 1, 2}
- SET_B = {0, 1}
- Set_C = {0, 1}
Результат должен содержат следующие строки (порядок не является ограничивающим):
ТАБЛИЦА:
- | 0 0 0 |
- | 0 0 1 |
- | 0 1 0 |
- | 0 1 1 |
- | 1 0 0 |
- | 1 0 1 |
- | 1 1 0 |
- | 1 1 1 |
- | 2 0 0 |
- | 2 0 1 |
- | 2 1 0 |
- | 2 1 1 |
Кто-нибудь знает, какая математика стоит за этой проблемой? Я попытался рассмотреть проблемы Multiset, логические таблицы, комбинаторики. Многие из определений, которые я нашел, имеют сходство с моей проблемой, но я не могу изолировать что-либо в литературе, к которой я обращался до сих пор. Как только у меня есть ссылочное определение, я могу думать о его кодировании, но теперь я просто потерялся в рекурсивных функциях и ужасных играх с массивом. Благодарю.
EDIT: Вопрос был предложен уже: C# Permutation of an array of arraylists?
Я не уверен, какие комплекты, которые вы разместили, имеют отношение к вашему столу. не могли бы вы объяснить отношения? –
Таблица @GeorgeMauer содержит все комбинации всех возможных значений. – holgac
Я не знаю, C# много, но в python, это прекрасный пример использования генератора/урожая. выход существует в C#; вероятно, есть способ построить нужную таблицу, используя выход. пример в python: http://pastebin.com/zveXyd0S – holgac