Определение фиктивных и существенных переменных

Определение понятия булевой функции как n-местной алгебраической операции на множестве. Нахождение фиктивных и существенных переменных. Алгоритм определения переменных. Принцип построения блок-схемы и листинг для программы нахождения фиктивной функции.

Рубрика Математика
Вид курсовая работа
Язык русский
Дата добавления 24.04.2011
Размер файла 23,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

10

Уфимский Государственный Авиационный Технический Университет

Курсовая работа по дискретной математике

«Определение фиктивных и существенных переменных»

Проверила: Шерыхалина Н. М.

Уфа 2008

1. Теоретическая часть

В курсе математического анализа изучаются функции, определённые на числовой прямой или на отрезке числовой прямой или на (гипер-) плоскости и т.п. Так или иначе область определения - непрерывное множество. В курсе дискретной математики изучаться должны функции, область определения которых - дискретное множество*. Простейшим (но нетривиальным) таким множеством является множество, состоящее из двух элементов.* Так мы и приходим к понятию булевой функции.

Определение 1 (Булева функция). Булевой функцией от n аргументов называется функция f из n-ой степени множества { 0, 1 } в множество { 0, 1 }.

Иначе говоря, булева функция - это функция, и аргументы и значение которой принадлежит множеству { 0, 1 }. Множество { 0, 1 } мы будем в дальнейшем обозначать через B.

Булеву функцию от n аргументов можно рассматривать как n-местную алгебраическую операцию на множестве B. При этом алгебра <B;?>, где ? - множество всевозможных булевых функций, называется алгеброй логики.

Конечность области определения функции имеет важное преимущество - такие функции можно задавать перечислением значений при различных значениях аргументов. Для того, чтобы задать значение функции от n переменных, надо определить значения для каждого из 2n наборов. Эти значения записывают в таблицу в порядке соответствующих двоичных чисел. В результате получается таблица следующего вида:

x1

x2

...

xn-1

xn

f

0

0

...

0

0

f(0,0,...,0,0)

0

0

...

0

1

f(0,0,...,0,1)

0

0

...

1

0

f(0,0,...,1,0)

0

0

...

1

1

f(0,0,...,1,1)

...

...

...

...

...

...

1

1

...

0

0

f(1,1,...,0,0)

1

1

...

0

1

f(1,1,...,0,1)

1

1

...

1

0

f(1,1,...,1,0)

1

1

...

1

1

f(1,1,...,1,1)

Раз у нас есть стандартный порядок записывания наборов, то для того, чтобы задать функцию, нам достаточно выписать значения f(0,0,...,0,0), f(0,0,...,0,1), f(0,0,...,1,0), f(0,0,...,1,1),..., f(1,1,...,0,0), f(1,1,...,0,1), f(1,1,...,1,0), f(1,1,...,1,1). Этот набор называют вектором значений функции.

Таким образом, различных функций n переменных столько, сколько различных двоичных наборов длины 2n*. А их 2 в степени 2n.

Множество B содержит два элемента - их можно рассматривать как булевы функции от нуля (пустого множества) переменных - константу 0 и константу 1.

Функций от одной переменной четыре: это константа 0, константа 1, тождественная функция, т.е. функция, значение которой совпадает с аргументом и так называемая функция ``отрицание''. Отрицание будем обозначать символом ¬ как унарную операцию. Приведём таблицы этих четырёх функций:

x

0

x

¬ x

1

0

0

0

1

1

1

0

1

0

1

Как видим, функции от некоторого числа переменных можно рассматривать как функции от большего числа переменных. При этом значения функции не меняется при изменении этих ``добавочных'' переменных. Такие переменные называются фиктивными, в отличие от остальных - существенных.

Определение 2 (Фиктивные и существенные переменные). Переменная xi называется фиктивной (несущественной) переменной функции f(x1,···,xn), если

f(x1,···,xi-1,0,xi+1,···,xn) = f(x1,···,xi-1,1,xi+1,···,xn)

для любых значений x1,···,xi-1,xi+1,···,xn. Иначе переменная xi называется существенной.

Функций от двух аргументов шестнадцать. Наиболее употребимые из этих функций (только те, которые существенно зависят от обеих переменных) мы приводим в следующей таблице:

x1

x2

x1 & x2

x1 ? x2

x1 ?x2

x1 ? x2

x1 ? x2

x1 | x2

0

0

0

0

1

0

1

0

0

1

0

1

1

1

0

1

1

0

0

1

0

1

0

1

1

1

1

1

1

0

1

1

Эти функции записываются как бинарные операции в инфиксной нотации. x1 & x2 называется конъюнкцией, x1 ? x2 - дизъюнкцией, x1 ? x2 - импликацией, x1 ? x2 - эквивалентностью, x1 ? x2 - суммой по модулю 2, x1 | x2 - штрихом Шеффера.

Значения 0 и 1 часто интерпретируют как ``ложь'' и ``истину''. Тогда понятным становится название функции ``отрицание'' - она меняет ``ложь'' на ``истину'', а ``истину'' на ``ложь''. Отрицание читается как ``не''. Конъюнкция читается обычно как ``и'' - действительно, конъюнкция равна 1 тогда и только тогда, когда равны 1 и первая и вторая переменная.* Кроме x1& x2 часто используют обозначение x1 ? x2 или x1 · x2 или x1x2 или min(x1,x2). Дизъюнкция читается ``или'' - дизъюнкция равна 1 тогда и только тогда, когда равны 1 первая или вторая переменная.* Импликация выражает факт, что из x1 следует x2.*

Алгоритм определения фиктивных переменных

Алгоритм определения фиктивных переменных в функции f(x1,···,xn) вытекает непосредственно из определения. В случае, когда функция f(x1,···,xn) задана таблично:

x1

x2

...

xn-1

xn

f

1

0

0

...

0

0

f(0,0,...,0,0)

2

0

0

...

0

1

f(0,0,...,0,1)

3

0

0

...

1

0

f(0,0,...,1,0)

4

0

0

...

1

1

f(0,0,...,1,1)

...

...

...

...

...

...

2n-3

1

1

...

0

0

f(1,1,...,0,0)

2n-2

1

1

...

0

1

f(1,1,...,0,1)

2n-1

1

1

...

1

0

f(1,1,...,1,0)

2n

1

1

...

1

1

f(1,1,...,1,1)

переменная xn будет являться фиктивной, если f1=f2, f3=f4, f5=f6, …, f2n-1=f2n. Переменная xn-1 будет фиктивной, если f1=f3, f2=f4, f5=f6, …, f2n-2=f2n. Переменная xn-2, если f1=f5, f2=f6, f3=f7, …, f2n-4=f2n и так далее. Таким образом прослеживается закономерность:

переменная xn-j является фиктивной, если для любых значений индекса i выполняется равенство fi=fi+2j

Блок-схема программы

Размещено на http://www.allbest.ru/

10

Листинг программы

#include <iostream.h>

#include <math.h>

#include <conio.h>

void main()

{int i, j, n, m, fl, *px, *pfl;

clrscr();

cout<<»Razmernost:\n»;

cin>>n;

m=pow(2,n);

px=new int[m];

pfl=new int[m];

cout<<»Vvedite vector znachenii funkcii:\n»;

for(i=0; i<m; i++)

cin>>px[i];

for(j=0; j<n; j++)

{ for(i=0; i<m; i++)

pfl[i]=0;

fl=0;

for(i=0; i<m; i++)

if(pfl[i]==0)

{ if(px[i]!=px[i+pow(2,j)]) {fl=1; break;}

pfl[i+pow(2,j)]=1;

}

if(fl==0) cout<<»X»<<n-j<<» - fiktivnaya peremennaya.\n»;

} getch();

}

Тестирование программы

булевая функция множество переменная

X1

X2

X3

Y

Фиктивные переменные

0

0

0

0

X1, X2

0

0

1

1

0

1

0

0

0

1

1

1

1

0

0

0

1

0

1

1

1

1

0

0

1

1

1

1

X1

X2

X3

X4

X5

Y

Фиктивные переменные

0

0

0

0

0

1

X2, X4

0

0

0

0

1

0

0

0

0

1

0

1

0

0

0

1

1

0

0

0

1

0

0

1

0

0

1

0

1

1

0

0

1

1

0

1

0

0

1

1

1

1

0

1

0

0

0

1

0

1

0

0

1

0

0

1

0

1

0

1

0

1

0

1

1

0

0

1

1

0

0

1

0

1

1

0

1

1

0

1

1

1

0

1

0

1

1

1

1

1

1

0

0

0

0

1

1

0

0

0

1

0

1

0

0

1

0

1

1

0

0

1

1

0

1

0

1

0

0

0

1

0

1

0

1

1

1

0

1

1

0

0

1

0

1

1

1

1

1

1

0

0

0

1

1

1

0

0

1

0

1

1

0

1

0

1

1

1

0

1

1

0

1

1

1

0

0

0

1

1

1

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

X1

X2

X3

X4

Y

Фиктивные переменные

0

0

0

0

0

X2

0

0

0

1

0

0

0

1

0

1

0

0

1

1

0

0

1

0

0

0

0

1

0

1

0

0

1

1

0

1

0

1

1

1

0

1

0

0

0

0

1

0

0

1

1

1

0

1

0

0

1

0

1

1

1

1

1

0

0

0

1

1

0

1

1

1

1

1

0

0

1

1

1

1

1

X1

X2

X3

X4

Y

Фиктивные переменные

0

0

0

0

0

X1

0

0

0

1

0

0

0

1

0

1

0

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

1

1

0

1

0

1

1

1

0

1

0

0

0

0

1

0

0

1

0

1

0

1

0

1

1

0

1

1

1

1

1

0

0

1

1

1

0

1

0

1

1

1

0

1

1

1

1

1

0

Размещено на Allbest.ru


Подобные документы

  • Понятия зависимой, независимой переменных, области определения функции. Примеры нахождения области функции. Примеры функций нескольких переменных: линейная, квадратическая, функция Кобба-Дугласа. Построение графика и линии уровня функции двух переменных.

    презентация [104,8 K], добавлен 17.09.2013

  • Понятие функции двух и более переменных, ее предел и непрерывность. Частные производные первого и высших порядков. Определение полного дифференциала. Необходимые и достаточные условия существования экстремума и его нахождение на условном множестве.

    реферат [145,4 K], добавлен 03.08.2010

  • Составление таблицы значений функции алгебры логики и нахождение всех существенных переменных. Связный ориентированный и взвешенный граф. Построение функции полиномом Жегалкина. Текст программы для алгоритма Дейкстры. Определение единиц и нулей функции.

    контрольная работа [43,2 K], добавлен 27.04.2011

  • Понятие функции нескольких переменных. Аргументы, частное значение и область применения функции. Рассмотрение функции двух и трех переменных. Предел функции нескольких переменных, теорема. Главная сущность непрерывности функции нескольких переменных.

    реферат [86,3 K], добавлен 30.10.2010

  • Нахождение экстремума функции нескольких переменных не на всей области определения, а на множестве, удовлетворяющему некоторому условию. Практический пример нахождения точки максимума и минимума функции. Главные особенности метода множителей Лагранжа.

    презентация [112,6 K], добавлен 17.09.2013

  • Понятие, предел и непрерывность функции двух переменных. Частные производные первого порядка, нахождение полного дифференциала. Частные производные высших порядков и экстремум функции нескольких переменных. Необходимые условия существования экстремума.

    контрольная работа [148,6 K], добавлен 02.02.2014

  • Определение точки экстремума для функции двух переменных. Аналог теоремы Ферма. Критические, стационарные точки. Теорема "Достаточное условие экстремума", доказательство. Схема исследования функции нескольких переменных на экстремум, практический пример.

    презентация [126,2 K], добавлен 17.09.2013

  • Методы нахождения минимума функции одной переменной и функции многих переменных. Разработка программного обеспечения вычисления локального минимума функции Химмельблау методом покоординатного спуска. Поиск минимума функции методом золотого сечения.

    курсовая работа [95,1 K], добавлен 12.10.2009

  • Нахождение частной производной первого порядка. Определение области определения функции. Расчет производной от функции, заданной неявно. Полный дифференциал функции двух переменных. Исследование функции на экстремум, ее наименьшее и наибольшее значения.

    контрольная работа [1,1 M], добавлен 12.11.2014

  • Сущность и математическое обоснование булевой функции, ее назначение и пути решения. Порядок составления таблицы истинности для определенного количества переменных. Связь всех дизъюнкций в конъюнкцию. Разработка и листинг программы представления.

    курсовая работа [837,6 K], добавлен 27.04.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.