[离散数学主析取范式主合取范式.doc

[离散数学主析取范式主合取范式.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[离散数学主析取范式主合取范式

实验二 实验题目: 生成主析取范式和主合取范式 实验目的: 熟悉地掌握计算机科学技术常用的离散数学中的概念、性质和运算;通过实验提高学生编写实验报告、总结实验结果的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。 掌握命题逻辑中的联接词、真值表、主范式等,进一步能用它们来解决实际问题。 实验内容: 利用计算机构造真值表来建立主析取范式和主合取范式 实验原理: 合取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∧Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P 为真, Q为真时方可P∧Q为真, 而P、Q只要有一为假则P∧Q 为假。 析取:二元命题联结词。将两个命题P、Q联结起来,构成一个新的命题P∨Q。这个新命题的真值与构成它的命题P、Q的真值间的关系为只有当两个命题变项P为假, Q为假时方可P∨Q为假, 而P、Q只要有一为真则P∨Q为真。 3.真值表:表征逻辑事件输入和输出之间全部可能状态的表格。列出命题公式真假值的表。通常以1表示真,0 表示假。命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定,命题联结词的真值表给出了真假值的算法。 真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。 4.主析取范式:在含有n个命题变元的简单合取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单合取式为小项。由若干个不同的小项组成的析取式称为主析取范式;与A等价的主析取范式称为A的主析取范式。任意含n个命题变元的非永假命题公式A都存在与其等价的主析取范式,并且是惟一的。 5.主合取范式:在含有n个命题变元的简单析取式中,若每个命题变元与其否定不同时存在,而两者之一出现一次且仅出现一次,称该简单析取式为大项。由若干个不同的大项组成的合取式称为主合取范式;与A等价的主合取范式称为A的主合取范式。任意含n个命题变元的非永真命题公式A都存在与其等价的主合取范式,并且是惟一的。 实验结果与分析: 实验结果: 实验分析: 参考前面实验的代码,生成真值表,然后找出所有值为1时,各变元的取值,从而生成相应的小项,最终得到主析取范式。找出值为0时各个变元的取值,从而生成相应的大项,最终得到主合取范式。 附:程序源代码: html head title3/title script language=javascript function getTrueTable() { var text=document.getElementById(text).value; alert(输入的公式:+text); var varList=; var i=0; var n=text.length; var value=; var code=0; var addList=; var decList=; for(i=0;in;i++)//取出公式中的字母 { code=text.charCodeAt(i); if((code=97)(code123)) { x=text.substr(i,1); if(varList.indexOf(x)0) { if(varList.length==0) {varList=x;} else {varList+=,+x;} } } } alert(公式中字母列表:+varList); var arrList=varList.split(,); var n=arrList.length; var table=table border=1 align=center id=tableMain; var t=tr; for(i=0;in;i++)//输入第一行 { t+=td+arrList[i]+/td; } t+=td+text+/td; t+=td真值/td; t+=/tr; table+=t; var m=1; var trow=new Array(n+1); for(i=0;in;i++) { m*=2; trow[i]=0; } var j=0; var flag=0; var k=0; var s=; for(i=0;im;i++) { t=tr; value=text; for(j=0;jn;j++) { x=arrList[j]; for(k=0;kvalue.length;k++) { if(value.substr(k,1)==x) {

文档评论(0)

xiayutian80 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档