分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
花了一下午在写这个重言式判别,可能是我孤陋寡闻了,总感觉这个名字怪怪的,就是判断一个永真式、永假式、可满足式了,书上面就要说是"重言式"。判断这个所谓重言式,核心算法就是用真值表啦,试过所有取值。
具体代码如下(可能有bug):有些难理解的我都有注释
/**/
/********************************************************************
created: 2007/11/09
author: 刺猬
purpose: 判断表达式的属性 永真式 永假式 可满足式
*********************************************************************/
#include < stdio.h >
#include < stdlib.h >
typedef struct exp ... {
char data;
int weight;
} express;
express symbolrepresent[ 27 ];
express originalexpression[ 50 ];
int trueforever = 0 ;
int falseforever = 0 ;
int originalexpressionlength = 0 ;
int symbolrepresentlength = 0 ;
// 欢迎屏幕
void ShowWelcome()
... {
printf(" ");
printf(" ");
printf(" ");
printf(" ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * ");
printf(" * 数据结构课程设计: * ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * ");
printf(" ");
printf(" 06052711班 ");
printf(" 刺猬 ");
printf(" ");
}
// 表达式分析器 分析权值 把 | 权值设为1 &设为2 ~设为3
created: 2007/11/09
author: 刺猬
purpose: 判断表达式的属性 永真式 永假式 可满足式
*********************************************************************/
#include < stdio.h >
#include < stdlib.h >
typedef struct exp ... {
char data;
int weight;
} express;
express symbolrepresent[ 27 ];
express originalexpression[ 50 ];
int trueforever = 0 ;
int falseforever = 0 ;
int originalexpressionlength = 0 ;
int symbolrepresentlength = 0 ;
// 欢迎屏幕
void ShowWelcome()
... {
printf(" ");
printf(" ");
printf(" ");
printf(" ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * ");
printf(" * 数据结构课程设计: * ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * ");
printf(" ");
printf(" 06052711班 ");
printf(" 刺猬 ");
printf(" ");
}
// 表达式分析器 分析权值 把 | 权值设为1 &设为2 ~设为3
//处理括号的思路是:遇见左括号 把里面权值提升4 遇见右括号 把权值减去4 这样可以处理多括号问题
int analyse(express * p)
... {
int weight=0;
int length=0;
printf("请输入表达式,并以回车符为结束: ");
printf("注意:请自行检查输入表达式的正确性 ");
while(scanf("%c",&(p->data))&&p->data!=10)
...{
int analyse(express * p)
... {
int weight=0;
int length=0;
printf("请输入表达式,并以回车符为结束: ");
printf("注意:请自行检查输入表达式的正确性 ");
while(scanf("%c",&(p->data))&&p->data!=10)
...{