挑战离散数学和C语言。。。
今天,我们的离散数学老师给我们除了一道题:
要求:输入一个公式,输出它的主析取范式。我只写出了程序,但是如何输入多项式以及如何输出主析取范式,我实在无能为力啊!故请各位高手帮忙:
/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 5
int f1(int a[])
{
(!a[0]||a[1])&&
((!a[1]&&a[2])||(a[1]&&!a[2]))&&
((a[2]&&a[3])||(!a[2]&&!a[3]))&&
(a[3]||a[4])&&
(!a[4]||(a[0]&&a[1]));
}
int f2(int a[])
{
for(a[0]=0;a[0]<=1;a[0]++)
for(a[1]=0;a[1]<=1;a[1]++)
for(a[2]=0;a[2]<=1;a[2]++)
for(a[3]=0;a[3]<=1;a[3]++)
for(a[4]=0;a[4]<=1;a[4]++)
{
int i,k;
i=f1(a);
if(i)
printf("%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]);
}
}
main()
{
int a[N]={0};
f2(a);
}