На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Хотелось бы узнать?
    Нужна программа, с помощью которой можно было бы определить существенные и фиктивные переменные (дискретная математика)
      Давай подробней :o :o :o
        значит так, обьясняю дя тех, кому тоже может быть интерестно.
        есть например функция от трех переменных (бинарных)
        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)


        счаспрогу писать времени нет извини, но алгоритм есть, пускайлюди пробуют.
        если долго ниче не напишут, задая вопрос в форуме по с++. только поставь ссылку сюда.

          А простым перебором проблему разве не решить?
            это вообще то и есть простой перебор, даже уж слишком простой, так как два раза все проходит. чтобы не два раза, нужно самому генерить все возможные пары и проверять.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0291 ]   [ 15 queries used ]   [ Generated: 2.05.24, 15:44 GMT ]