
Алгоритм определения фиктивных переменных
Алгоритм определения фиктивных переменных в функции 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
Блок-схема программы Листинг программы
#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 |
Y |
Фиктивные переменные |
0 |
0 |
0 |
1 |
X1, X3 |
0 |
0 |
1 |
1 |
|
0 |
1 |
0 |
0 |
|
0 |
1 |
1 |
0 |
|
1 |
0 |
0 |
1 |
|
1 |
0 |
1 |
1 |
|
1 |
1 |
0 |
0 |
|
1 |
1 |
1 |
0 |
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 |
X3 |
0 |
0 |
0 |
1 |
1 |
|
0 |
0 |
1 |
0 |
0 |
|
0 |
0 |
1 |
1 |
1 |
|
0 |
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
1 |
0 |
|
0 |
1 |
1 |
0 |
0 |
|
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 |
1 |
|
1 |
1 |
0 |
1 |
0 |
|
1 |
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
1 |
0 |
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 |
X1 |
X2 |
X3 |
X4 |
Y |
Фиктивные переменные |
0 |
0 |
0 |
0 |
1 |
X1, X4 |
0 |
0 |
0 |
1 |
1 |
|
0 |
0 |
1 |
0 |
1 |
|
0 |
0 |
1 |
1 |
1 |
|
0 |
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
1 |
0 |
|
0 |
1 |
1 |
0 |
1 |
|
0 |
1 |
1 |
1 |
1 |
|
1 |
0 |
0 |
0 |
1 |
|
1 |
0 |
0 |
1 |
1 |
|
1 |
0 |
1 |
0 |
1 |
|
1 |
0 |
1 |
1 |
1 |
|
1 |
1 |
0 |
0 |
0 |
|
1 |
1 |
0 |
1 |
0 |
|
1 |
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
1 |
1 |