王浩算法Word文档格式.docx
- 文档编号:22066562
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:20
- 大小:26.56KB
王浩算法Word文档格式.docx
《王浩算法Word文档格式.docx》由会员分享,可在线阅读,更多相关《王浩算法Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
例如[(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);
Vector<
//把输入的字符串存入一个向量数组Vector中
try{
for(inti=0;
i<
s2.length();
i++)
p.add(s2.charAt(i));
}catch(IndexOutOfBoundsExceptione){}
intlcount=0;
intrcount=0;
right=newVector<
left=newVector<
化简命题公式:
for(inti=0;
p.size();
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('
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('
}
}
processDisplay(p);
elseif(p.elementAt(i)=='
'
){//把"
与"
)&
(p.elementAt(i+1)>
p.elementAt(i+1)<
try{
if(p.elementAt(i-2)=='
try{
p.insertElementAt('
(i-2));
p.insertElementAt('
}catch(ArrayIndexOutOfBoundsExceptione){
else{
}catch(ArrayIndexOutOfBoundsExceptione){
p.insertElementAt('
p.set((i+2),'
p.insertElementAt('
(i+3));
(i+5));
elseif(p.elementAt(i-1)=='
if(p.elementAt(j)=='
){lcount++;
){lcount--;
if(lcount==0){
try{
if(p.elementAt(j-1)=='
try{
p.insertElementAt('
(j-1));
p.insertElementAt('
}catch(ArrayIndexOutOfBoundsExceptione){
p.insertElementAt('
}
}
else{p.insertElementAt('
}catch(IndexOutOfBoundsExceptione){
p.set((i+2),'
p.insertElementAt('
}
elseif((p.elementAt(i-1)>
p.elementAt(i+1)=='
if(p.elementAt(i-2)=='
}catch(ArrayIndexOutOfBoundsExceptione){
else{p.insertElementAt('
p.set((i+2),'
p.removeElementAt(i+3);
if(p.elementAt(i+3)>
p.elementAt(i+3)<
(i+4));
elseif(p.elementAt(i+3)=='
for(intj=i+3;
j<
j++){
if(p.elementAt(j)=='
){rcount++;
){rcount--;
if(rcount==0){
(j+1));
elseif(p.elementAt(i-1)=='
for(intj=i-1;
if(p.elementAt(j)=='
if(lcount==0){
try{
if(p.elementAt(j-1)=='
try{
p.insertElementAt('
}catch(ArrayIndexOutOfBoundsExceptione){
p.insertElementAt('
}
else{p.insertElementAt('
}catch(IndexOutOfBoundsExceptione){p.insertElementAt('
p.removeElementAt(i+3);
if(p.elementAt(i+3)>
elseif(p.elementAt(i+3)=='
for(intj=i+3;
if(p.elementAt(j)=='
if(rcount==0){
p.insertElementAt('
}
elseif(p.elementAt(i-1)=='
for(intj=i-1;
if(p.elementAt(j)=='
if(lcount==0){
try{
if(p.elementAt(j-1)=='
try{
p.insertElementAt('
}catch(ArrayIndexOutOfBoundsExceptione){
p.insertElementAt('
}
}
else{p.insertElementAt('
}catch(IndexOutOfBoundsExceptione){
p.set((i+2),'
if(p.elementAt(i+3)=='
for(intk=i+3;
k<
k++){
if(p.elementAt(k)=='
if(p.elementAt(k)=='
if(rcount==0){p.insertElementAt('
(k+1));
elseif(p.elementAt(i+3)>
processDisplay(p);
}
elseif(p.elementAt(i)=='
双箭头"
if((p.elementAt(i-1)>
(p.elementAt(i+1)>
if(p.elementAt(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.set((i+3),'
p.add((i+7),'
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.set((i+3),'
p.add((i+7),'
p.add((i+12),'
transformComma(p);
proveFormula(w,p);
removeKuohao(w,p);
proveOutput(w,p);
judgeResult(w,p);
publicvoidtransformComma(Vector<
p){//把单箭头转化为"
逗号"
Stringout=null;
intlcount=0;
进一步化简命题公式:
for(inti=0;
if(p.elementAt(i)=='
if(p.elementAt(i-1)>
if(p.elementAt(i-2)=='
p.removeElementAt(i-2);
p.set((i-1),'
'
else{p.insertElementAt('
}catch(ArrayIndexOutOfBoundsExceptione){p.insertElementAt('
elseif(p.elementAt(i-1)=='
for(intj=i-1;
){lcount++;
){lcount--;
if(lcount==0){
){p.removeElementAt(j-1);
else{p.insertElementAt('
break;
else{continue;
}
publicvoidproveFormula(Vector<
w,Vector<
p){//用推理规则推导命题公
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法