离散数学实验报告三——真值表与主范式

一、预习内容:

1、真值表:把变量的各种可能取值与想对应的函数值,用表格的形式一一列举出来,这种表格就叫做真值表
2、命题公式的析(合)取范式
⑴文字:命题变元及其否定统称为文字
⑵简单析取式:仅有限个文字组成的析取式
⑶简单合取式:仅有限个文字组成的合取式
3、从定义可得
⑴一个简单析取式是重言式当且仅当它同时含有某个命题变元及其否定式。
⑵一个简单合取式是矛盾式当且仅当它同时含有某个命题变元及其否定式。
4、范式存在定理:任一个命题公式都存在着与之等价的析取范式与合取范式。

二、实验目的与要求(及主要实验仪器、设备):

1.通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算;
2. 通过实验提高学生编写实验报告、总结实验结果的能力;
3. 使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。
实验环境:软件:vc++6.0 ,硬件:电脑

三、实验原理(方法与与原理分析):

1.真值表:表征逻辑事件输入和输出之间全部可能状态的表格。列出命题公式真假值的表。通常以1表示真,0表示假。命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定,命题联结词的真值表给出了真假值的算法真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。
2.主析取范式:在含有n个命题变元的简单合取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单合取式为小项。由若干个不同的小项组成的析取式称为主析取范式;与A等价的主析取范式称为A的主析取范式。任意含n个命题变元的非永假命题公式A都存在与其等价的主析取范式,并且是惟一的。
3.主合取范式:在含有n个命题变元的简单析取式中。若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单析取式为大项。由若干个不同的大项组成的合取式称为主合取范式;与A等价的主合取范式称为A的主合取范式。任意含n个命题变元的非永真命题公式A都存在与其等价的主合取范式,并且是惟一的。

四、实验步骤(程序代码与实验过程):

#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int LEN = 140 + 10;
char arr[LEN];
int brr[LEN][4+10];
int beg = 80;
int sta1 = 0, sta2 = 0;
main()
{
int m;
memset(brr, 0, sizeof(brr));
int num;
cout << “请输入变量个数:”;
cin >> num;
cout << endl;
int sum=pow(2, num);
cout << “请输入”<<sum << “个字符(用T 或 F表示)”;
for(m=1;m<=sum;m++)
{cin >> arr[m];
if(arr[m] == ‘T’)
sta1++;
else
sta2++;}
cout << endl;
int cnt1 = 0, cnt2 = 1;
for(m=sum-1;m>=0;m–)
{cnt1 = 0;
int val=m;
while(cnt1 < num)
{cnt1++;
brr[cnt2][cnt1] = val%2;
val = val/2;}
cnt2++;}
cout << “输出公式对应的真值表 :”<< endl;
for(m=1;m<=num;m++)
{cout << char(beg++) << " ";}
cout << ‘A’;
cout << endl;
cout << “———————————” << endl;
beg = 80;
for(m= 1;m<=sum;m++)
{for(int j = num; j >= 1; j–)
{if(brr[m][j] == 1)
cout << ‘T’ << " ";
else
cout << ‘F’ << " ";}
cout << arr[m];
cout << endl;}
cout << endl;
int k = 0;
cout << “输出主析取范式:” << endl;
for(m=1; m<=sum;m++)
{if(arr[m] == ‘T’){
k++;
cout << ‘(’;
for(int j = num; j >= 1; j–)
{if(brr[m][j] == 1)
{cout << (char)(beg++);}
else
{cout << “┓” << (char)(beg++);}
if(j != 1)
cout << “∧”;}
cout << ‘)’;
if(k < sta1)
cout << “∨”;}
beg = 80;}
cout << endl
<< endl;
cout << “输出主合取范式:” << endl;
for(m= 1;m<=sum;m++)
{if(arr[m] == ‘F’)
{k++;
cout << ‘(’;
for(int j = num; j >= 1; j–)
{if(brr[m][j] == 0)
{cout << (char)(beg++);}
else
{cout << “┓” << (char)(beg++);}
if(j != 1)
cout << “∨”;}
cout << ‘)’;
if(k < sta2)
cout << “∧”;}
beg = 80;}
cout << endl;
return 0;}

五、实验结果(数据分析与结论):

六、问题讨论:

问:范式有什么特点:?
答:(1) 范式中不出现联结词→、←;,求范式时可消去:
A→B↔┐A∨B
A←B↔(┐A∨B)∧(A∨┐B)
(2)范式中不出现如下形式的公式:
┐┐A, ┐(A∧B), ┐(A∨B)
因为:┐┐A↔A
┐(A∧B)↔┐A∨┐B
┐(A∨B)↔┐A∧┐B
(3)在析取范式中不出现如下形式的公式:
A∧(B∨C)
在合取范式中不出现如下形式的公式:
A∨(B∧C)
因为:A∧(B∨C)↔(A∧B)∨(A∧C)
A∨(B∧C)↔(A∨B)∧(A∨C)

离散数学实验报告三——真值表与主范式相关推荐

  1. 离散数学范式c语言实验报告,离散数学实验报告-利用真值表法求主析取范式及主合取范式的实现...

    1.实 验 报 告( / 学年 第 一 学期)课程名称离散数学实验名称利用真值表法求主析取范式及主合取范式的实现实验时间年月日指导单位指导教师学生姓名班级学号学院(系)专 业 实 验 报 告实验名称利 ...

  2. 计算机网络实验ip数据报转发,计算机网络实验报告三网际协议IP.doc

    计算机网络实验报告三网际协议IP 计算机网络实验报告 实验题目:网际协议IP学号:201200301106日期:2014/11/20班级:2012级软工3班姓名: 李凯峰实验目的: 1.掌握IP数据报 ...

  3. 高级语言程序设计II 实验报告三c++使用文本文件和二进制文件的读写比较两者的区别和优劣...

    高级语言程序设计II 实验报告三 姓名:许恺 学号:2014011329 日期:2015年5月25日 1. 实验目的 通过在c++中使用文本文件和二进制文件的读写比较两者的区别和优劣,同时锻炼c++的 ...

  4. 离散数学实验报告 实验3 欧拉路的确定

    离散数学实验报告 实验3 欧拉路的确定 一.实验目的 理解欧拉图的概念,掌握欧拉通/回路的判定方法. 二.实验内容 输入一个无向简单图的邻接矩阵,判定该图是否含有欧拉通/回路.若有,请给出一条欧拉通/ ...

  5. 实验报告三c语言,C语言实验报告三

    C程序设计实验报告三 实验项目:4-3-1if语句的应用:4-3-2switch-case的应用:4-3-3switch-case嵌套if语句的应用:4-3-4switch-case结构嵌套的应用: ...

  6. matlab双极性眼图,实验报告三编程做单极性码眼图仿真

    <实验报告三编程做单极性码眼图仿真>由会员分享,可在线阅读,更多相关<实验报告三编程做单极性码眼图仿真(4页珍藏版)>请在人人文库网上搜索. 1.1.实验目的(1)掌握单极性码 ...

  7. 离散数学实验报告四——图的应用

    离散数学实验报告四--图的应用 预习内容: 1.图的基本概念 1.1图的定义:现实世界中许多现象能用某种图形表示,这种图形是由一些点和一些连接两点间的连线所组成. 1.2邻接点: 同一条边的两个端点. ...

  8. 计算机网络实验IP数据报分片,实验报告三IP数据分片.doc

    实验报告三IP数据分片 计算机网络实验报告 实验名称:IP数据分片 组号:一组 角色号:B 姓 名: 班 级: 学 号: 日 期:2014.4.21 一,实验目的 学习IP数据报分片原理 二,实验步骤 ...

  9. 计算机微程序控制器实验报告,计算机组成原理实验报告三:微程序控制器实验.doc...

    计算机组成原理实验报告三:微程序控制器实验.doc 微程序控制器实验报告一. 实验目的1 掌握微程序控制器的功能.组成知识.(2)掌握为程序的编制.写入.观察微程序的运行二.实验设备PC机一台,TD- ...

最新文章

  1. 如何提高3D点云目标检测的难例精度?
  2. java 序列化 例子_Java序列化和反序列化例子
  3. 1到10用递归c语言,为什么这个递归能输出1到10
  4. 中国数据库OceanBase登顶之路
  5. 上周热点回顾(4.14-4.20)
  6. opencv库skimage 实现Canny边缘探测算法
  7. 如何备份MySql的数据库
  8. 卡巴斯基KEY文件的类型选择
  9. VS2013配置PDFLib 9.1.2的环境
  10. 天网防火墙V2.61学习教程
  11. 7种常用的数据标注工具
  12. 浅谈 NCSI 及其在 Linux 上的实现
  13. 插入网线后以太网显示ip4连接无网络访问权限
  14. 阿里巴巴编码规范习题
  15. matlab计算加减乘除,matlab计算矩阵的加减乘除以及逆
  16. 人工神经网络——学习策略
  17. 如何隐藏logo 高德地图api_高德地图去掉logo
  18. Neural Summarization by Extracting Sentences and Words
  19. Latex出现错误:File ‘citesort.sty‘ not found.
  20. 空气动力学——第二章 基本原理和基本方程

热门文章

  1. ubuntu无法调整分辨率
  2. ReentrantLock源码分析
  3. SOA RPC SOAP REST
  4. 苹果七绕过基带激活2020_【快讯:苹果135亿的基带订单,高通疑有诈直接拒绝了;网传索尼移动考虑退出东南亚手机市场;黑客成功获取iPhone XS 权限】...
  5. CreateJS奥运五环动画
  6. access团员人数公式_2013年计算机二级Access上机模拟试卷二
  7. freeNAS(网络区域存储)
  8. 程序算法之逆推法(口算猴子摘桃问题正解、详解)
  9. 08音视频设备类、09信息技术设备、16电信终端设备CCC认证流程费用及周期
  10. 金庸小说数据化中的部分题目答案