王浩算法.docx

上传人:b****8 文档编号:8930412 上传时间:2023-02-02 格式:DOCX 页数:20 大小:26.56KB
下载 相关 举报
王浩算法.docx_第1页
第1页 / 共20页
王浩算法.docx_第2页
第2页 / 共20页
王浩算法.docx_第3页
第3页 / 共20页
王浩算法.docx_第4页
第4页 / 共20页
王浩算法.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

王浩算法.docx

《王浩算法.docx》由会员分享,可在线阅读,更多相关《王浩算法.docx(20页珍藏版)》请在冰豆网上搜索。

王浩算法.docx

王浩算法

1.实验目的

熟练掌握命题逻辑中的王浩算法。

2.实验内容:

实现命题逻辑框架内的王浩算法。

⑴将命题逻辑中的王浩算法推广至下述命题语言的情形之下:

ⅰ命题变量符号:

ⅱ逻辑连接符:

ⅲ间隔符:

⑵在上述⑴中所定义的命题语言中实现王浩算法。

3.实验步骤

importjava.io.*;

importjava.util.Vector;

 

publicclassWangHaoAlgorithm{

staticStrings=null;

staticinti=0;

staticcharch[]=newchar[100];

Vectorw=newVector();

Vectorp=newVector();

publicstaticvoidmain(Stringargs[]){

System.out.println("请输入需要证明的命题公式:

例如[(p-(~q|r))-((p-q)-(p-r))]或[(p|q)&r]或[p=q]");

BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));//输入一个字符串

try{

s=in.readLine();

}catch(Exceptione){}

WangHaoAlgorithmwanghao=newWangHaoAlgorithm();

wanghao.transformArrow();

}

 

publicvoidtransformArrow(){//把命题公式简化

Stringout=null;

WangHaoAlgorithmwanghao=newWangHaoAlgorithm();

Strings2=null;

s2=wanghao.s;

System.out.println("=>"+s2);

Vectorp=newVector();//把输入的字符串存入一个向量数组Vector中

try{

for(inti=0;i

p.add(s2.charAt(i));

}catch(IndexOutOfBoundsExceptione){}

intlcount=0;

intrcount=0;

Vectorright=newVector();

Vectorleft=newVector();

System.out.println("化简命题公式:

");

for(inti=0;i

if(p.elementAt(i)=='|'){//把"或"转化为单箭头

if((p.elementAt(i-1)>='a'&&p.elementAt(i-1)<='z')){

try{

if(p.elementAt(i-2)=='~'){

p.removeElementAt(i-2);

p.set((i-1),'-');

}

else{

p.insertElementAt('~',(i-1));

p.set((i+1),'-');

}

}catch(ArrayIndexOutOfBoundsExceptione){p.insertElementAt('~',(i-1));p.set((i+1),'-');}

}

elseif(p.elementAt(i-1)==')'){

for(intj=i-1;j>=0;j--){

if(p.elementAt(j)==')'){lcount++;}

if(p.elementAt(j)=='('){lcount--;}

if(lcount==0){

try{

if(p.elementAt(j-1)=='~'){

p.removeElementAt(j-1);

p.set((i-1),'-');

}

else{p.insertElementAt('~',j);

p.set((i+1),'-');

}

}catch(ArrayIndexOutOfBoundsExceptione){p.insertElementAt('~',j);p.set((i+1),'-');}

}

}

}

processDisplay(p);

}

elseif(p.elementAt(i)=='&'){//把"与"转化为单箭头

if((p.elementAt(i-1)>='a'&&p.elementAt(i-1)<='z')&&(p.elementAt(i+1)>='a'&&p.elementAt(i+1)<='z')){

try{

if(p.elementAt(i-2)=='~'){

try{

p.insertElementAt('(',(i-2));p.insertElementAt('~',(i-2));

}catch(ArrayIndexOutOfBoundsExceptione){

p.insertElementAt('(',(i-2));p.insertElementAt('~',(i-2));

}

}

else{

p.insertElementAt('(',(i-1));p.insertElementAt('~',(i-1));

}

}catch(ArrayIndexOutOfBoundsExceptione){

p.insertElementAt('(',(i-1));p.insertElementAt('~',(i-1));

}

p.set((i+2),'-');

p.insertElementAt('~',(i+3));p.insertElementAt(')',(i+5));

}

elseif(p.elementAt(i-1)==')'&&(p.elementAt(i+1)>='a'&&p.elementAt(i+1)<='z')){

for(intj=i-1;j>=0;j--){

if(p.elementAt(j)==')'){lcount++;}

if(p.elementAt(j)=='('){lcount--;}

if(lcount==0){

try{

if(p.elementAt(j-1)=='~'){

try{

p.insertElementAt('(',(j-1));p.insertElementAt('~',(j-1));

}catch(ArrayIndexOutOfBoundsExceptione){

p.insertElementAt('(',(j-1));p.insertElementAt('~',(j-1));

}

}

else{p.insertElementAt('(',j);p.insertElementAt('~',j);}

}catch(IndexOutOfBoundsExceptione){

p.insertElementAt('(',j);p.insertElementAt('~',j);

}

p.set((i+2),'-');

p.insertElementAt('~',(i+3));p.insertElementAt(')',(i+5));

}

}

}

elseif((p.elementAt(i-1)>='a'&&p.elementAt(i-1)<='z')&&p.elementAt(i+1)=='~'){

try{

if(p.elementAt(i-2)=='~'){

try{

p.insertElementAt('(',(i-2));p.insertElementAt('~',(i-2));

}catch(ArrayIndexOutOfBoundsExceptione){

p.insertElementAt('(',(i-2));p.insertElementAt('~',(i-2));

}

}

else{p.insertElementAt('(',(i-1));p.insertElementAt('~',(i-1));}

}catch(ArrayIndexOutOfBoundsExceptione){

p.insertElementAt('(',(i-1));p.insertElementAt('~',(i-1));

}

p.set((i+2),'-');

p.removeElementAt(i+3);

if(p.elementAt(i+3)>='a'&&p.elementAt(i+3)<='z'){

p.insertElementAt(')',(i+4));

}

elseif(p.elementAt(i+3)=='('){

for(intj=i+3;j

if(p.elementAt(j)=='('){rcount++;}

if(p.elementAt(j)==')'){rcount--;}

if(rcount==0){

p.insertElementAt(')',(j+1));

}

}

}

}

elseif(p.elementAt(i-1)==')'&&p.elementAt(i+1)=='~'){

for(intj=i-1;j>=0;j--){

if(p.elementAt(j)==')'){lcount++;}

if(p.elementAt(j)=='('){lcount--;}

if(lcount==0){

try{

if(p.elementAt(j-1)=='~'){

try{

p.insertElementAt('(',(j-1));p.insertElementAt('~',(j-1));

}catch(ArrayIndexOutOfBoundsExceptione){

p.insertElementAt('(',(j-1));p.insertElementAt('~',(j-1));

}

}

else{p.insertElementAt('(',j);p.insertElementAt('~',j);}

}catch(IndexOutOfBoundsExceptione){p.insertElementAt('(',j);p.insertElementAt('~',j);}

}

}

p.set((i+2),'-');

p.removeElementAt(i+3);

if(p.elementAt(i+3)>='a'&&p.elementAt(i+3)<='z'){

p.insertElementAt(')',(i+4));

}

elseif(p.elementAt(i+3)=='('){

for(intj=i+3;j

if(p.elementAt(j)=='('){rcount++;}

if(p.elementAt(j)==')'){rcount--;}

if(rcount==0){

p.insertElementAt(')',(j+1));

}

}

}

}

elseif(p.elementAt(i-1)==')'){

for(intj=i-1;j>=0;j--){

if(p.elementAt(j)==')'){lcount++;}

if(p.elementAt(j)=='('){lcount--;}

if(lcount==0){

try{

if(p.elementAt(j-1)=='~'){

try{

p.insertElementAt('(',(j-1));p.insertElementAt('~',(j-1));

}catch(ArrayIndexOutOfBoundsExceptione){

p.insertElementAt('(',(j-1));p.insertElementAt('~',(j-1));

}

}

else{p.insertElementAt('(',j);p.insertElementAt('~',j);}

}catch(IndexOutOfBoundsExceptione){

p.insertElementAt('(',j);p.insertElementAt('~',j);

}

}

}

p.set((i+2),'-');

if(p.elementAt(i+3)=='('){

for(intk=i+3;k

if(p.elementAt(k)=='('){rcount++;}

if(p.elementAt(k)==')'){rcount--;}

if(rcount==0){p.insertElementAt(')',(k+1));}

}

}

elseif(p.elementAt(i+3)>='a'&&p.elementAt(i+3)<='z'){

p.insertElementAt('~',(i+3));p.insertElementAt(')',(i+5));

}

}

processDisplay(p);

}

elseif(p.elementAt(i)=='='){//把"双箭头"转化为单箭头

if((p.elementAt(i-1)>='a'&&p.elementAt(i-1)<='z')&&(p.elementAt(i+1)>='a'&&p.elementAt(i+1)<='z')){

try{

if(p.elementAt(i-2)=='~'){

p.add((i-2),'(');p.add((i-2),'(');p.add((i-2),'~');

p.set((i+3),'-');p.add((i+5),')');p.add((i+6),'-');

p.add((i+7),'~');p.add((i+8),'(');p.add((i+9),p.elementAt(i+2));

p.add((i+10),'-');p.add((i+11),'~');p.add((i+12),p.elementAt(i+4));

p.add((i+13),')');p.add((i+14),')');

}

else{p.add((i-1),'(');p.add((i-1),'(');p.add((i-1),'~');

p.set((i+3),'-');p.add((i+5),')');p.add((i+6),'-');

p.add((i+7),'~');p.add((i+8),'(');p.add((i+9),p.elementAt(i+4));

p.add((i+10),'-');p.add((i+11),p.elementAt(i+2));p.add((i+12),')');

p.add((i+13),')');

}

}catch(ArrayIndexOutOfBoundsExceptione){

p.add((i-1),'(');p.add((i-1),'(');p.add((i-1),'~');

p.set((i+3),'-');p.add((i+5),')');p.add((i+6),'-');

p.add((i+7),'~');p.add((i+8),'(');p.add((i+9),p.elementAt(i+4));

p.add((i+10),'-');p.add((i+11),p.elementAt(i+2));p.add((i+12),')');

p.add((i+13),')');

}

}

processDisplay(p);

}

}

transformComma(p);

proveFormula(w,p);

removeKuohao(w,p);

proveOutput(w,p);

judgeResult(w,p);

}

 

publicvoidtransformComma(Vectorp){//把单箭头转化为"逗号"

Stringout=null;

intlcount=0;

intrcount=0;

System.out.println("进一步化简命题公式:

");

for(inti=0;i

if(p.elementAt(i)=='-'){

if(p.elementAt(i-1)>='a'&&p.elementAt(i-1)<='z'){

try{

if(p.elementAt(i-2)=='~'){

try{

p.removeElementAt(i-2);p.set((i-1),',');

}catch(ArrayIndexOutOfBoundsExceptione){

p.removeElementAt(i-2);p.set((i-1),',');

}

}

else{p.insertElementAt('~',(i-1));p.set((i+1),',');}

}catch(ArrayIndexOutOfBoundsExceptione){p.insertElementAt('~',(i-1));p.set((i+1),',');}

}

elseif(p.elementAt(i-1)==')'){

for(intj=i-1;j>=0;j--){

if(p.elementAt(j)==')'){lcount++;}

if(p.elementAt(j)=='('){lcount--;}

if(lcount==0){

try{

if(p.elementAt(j-1)=='~'){p.removeElementAt(j-1);p.set((i-1),',');}

else{p.insertElementAt('~',j);p.set((i+1),',');}

}catch(ArrayIndexOutOfBoundsExceptione){

p.insertElementAt('~',j);p.set((i+1),',');

}

break;

}

}

}

}

else{continue;}

processDisplay(p);

}

}

 

publicvoidproveFormula(Vectorw,Vectorp){//用推理规则推导命题公

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1