①c語言版
亮點:1.qsort(b, j, sizeof(char), cmp);
c語言標準庫函式
2.while(處理括號 || 處理否定 || 處理合取 ... );
可以消除運算子優先順序的問題,但是還是解決不了同級運算子的先後問題。
如:p+q*r會變成p+(q*r)
3.模擬輾轉相除法給變元賦值
**簡單明瞭,但是效率比不上位運算
#include "string.h"
#include "stdio.h"
#include "ctype.h"
#include "stdlib.h"
int cmp(const void* a, const void* b)
int getalpha(char a,char b)
} }qsort(b,j,sizeof(char),cmp); //改進2:用快排代替氣泡排序,提高效率
/* for(i=0; ib[k+1])
}} */
b[j]='\0';
return j;
}void fillvalue(char a,char varchar,int nvar,
char valchar,char resultchar)
//真值表各行
for(j=0; j=0; j--)
else //1+0=1 不變
}else if(charval[j]=='0')
//0+0結束
else}}
*/} for (i=0; i執行結果展示:
②c++11版
亮點:1.使用map容器儲存變元—>0/1的對映
2.合理使用stl中的string::find和replace函式
3.增加判斷了公式是否合法
// !否定,*合取,+析取,-條件,=雙條件
#include #include #include #include #include #include using namespace std;
mapletter; //用紅黑樹結構建立 p/q/r -> 0/1 的對映 //優點:查詢方便且速度快,按字典順序排序
vectorminum;
vectormaxum;
void setletter( int num ) //set p/q/r with 0/1
}bool rps( string& a, string f, string r ) //replace f with r in string a
return false;
}void setstring( string& a ) //replace p/q/r with 0/1 in string
}int getresult( string& tmp ) //get the result true/false
void print( int num, bool ismax, int count ) //print the min_item or max_item }}
int main()
cout << endl << "真值表:" << endl;
for (auto p : letter)
cout << p.first << ' ';
cout << '|' << input << endl;
int count = pow( 2, letter.size() );
for (int i = 0; i < count; ++i) //for i = 0 to 2^letter_number
else
}//print 主合/主析
cout << endl << "主析取正規化:";
if (minum.size() == 1) print( minum[0], false, letter.size() );
else }
cout << endl << endl;
cout << "主合取正規化:";
if (maxum.size() == 1) print( maxum[0], true, letter.size() );
else }
cout << endl << endl;
system( "pause" );
return 0;
}
執行結果:
C語言 命題公式真值表
掌握命題公式真值表的求解,並實現自動求解程式。輸入 任意命題公式 輸出 該命題公式的真值表 要求 輸入任意命題公式,要求用資料儲存命題公式的所有賦值及對應真值,並輸出該公式真值表 此題,難度稍大,對命題公式的表示的方式不一樣,實現過程略有不同,可查詢相關資料。比較長,還需要細心 有什麼意見還請大佬提...
命題邏輯 1
真值 命題可以取乙個值,稱為真值。真值只有 真 和 假 兩種,分別用 1 t 和 0 f 表示。命題 具有確切真值的陳述句。一切沒有判斷內容的句子,都不能作為命題。原子命題 不能再分解為更簡單的命題。復合命題 可以分解為成簡單的命題,與原子命題相對。聯結詞 否定聯結詞 非 合取聯結詞 並且 析取聯結...
10 2 命題邏輯
usr bin env python coding utf 8 命題邏輯 表示對應特定語句連線詞的語言結構部分 布林運算子 連線詞的對應形式 命題符號 命題邏輯的基本表示式import nltk nltk.boolean ops 公式 我們可以建立 命題邏輯的規範公式的無限集合。in 4 nltk....