Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.181.231] |
|
Сообщ.
#1
,
|
|
|
Нужна программа, с помощью которой можно было бы определить существенные и фиктивные переменные (дискретная математика)
|
Сообщ.
#2
,
|
|
|
Давай подробней
|
Сообщ.
#3
,
|
|
|
значит так, обьясняю дя тех, кому тоже может быть интерестно.
есть например функция от трех переменных (бинарных) xyzf 0000 0010 0101 0110 1000 1011 1101 1110 значит переменная есть фиктивная, если значение функции от нее не зависит. то есть например вторая переменная будет фиктивной, если для всех наборов исходніх данных x1x x0x функция принимает одинаковые значения. пример xyz f 000 0 001 1 010 0 011 1 100 1 101 0 110 1 111 0 вторая переменная фиктивна. на 000 и 010 функция принимает 0 001 и 011 функция 1 100 110 1 101 111 0 кстати такие наборы называются соседними по переменной i (в данном случае i=2) если хоть на одной паре функция принимает различные значения, то все, переменная значима. проверка простая есть, берем массив от 0 до 2 в степени (кол-во аргументов)-1 ложим туда значение функции. (в ячейку 0 ложим функция от 000, в 1 от 001, в ячейку 5 ложим значение функции от 101) проверяем каждый номер массива. смотрим, массив[i] и массив [~i] где ~i - это значение, полученное из i инвертированием бита 2 (если проверяем на значимость вторую переменную) если значения не совпадают, прекращаем проверку, переменная значима. если совпадают, продолжаем для следующего I. еслирповерили все i, то переменная фиктивна. и так проверяем каждую переменную. минус этогоопдхода - каждую пару проверяем два раза (один раз i=100 ~i=110, второй раз i=110, ~i=100) счаспрогу писать времени нет извини, но алгоритм есть, пускайлюди пробуют. если долго ниче не напишут, задая вопрос в форуме по с++. только поставь ссылку сюда. |
Сообщ.
#4
,
|
|
|
А простым перебором проблему разве не решить?
|
Сообщ.
#5
,
|
|
|
это вообще то и есть простой перебор, даже уж слишком простой, так как два раза все проходит. чтобы не два раза, нужно самому генерить все возможные пары и проверять.
|