這學期上離散數學實驗課,遇到了兩個有意思的題目
第乙個是輸入表示式例如p&q,求出這個表示式的真值表,進而求出它的主合取正規化和主析取正規化。
其實後面的很無聊,有意思的是根據表達是生成真值表,這就類似於給你乙個數學表示式(a+b)/(c*d),然後根據a b c d 的不同取值求出表示式的結果,這裡解析這個表示式是乙個重點,還要考慮括號的優先順序問題,如果你想到把中綴表示式換成字尾表示式,那麼好吧,你已經大概知道這個程式的主要結構了~
#include #include #include#include#include#includeusing namespace std;
const int m = 10; //真值表最大列數
const int n = 520; //真值表最大行數
class expression
//獲得雙條件表示式的值
int getvaluedouble(int a, int b)
//獲得符號的優先性
int getpri(char c)
} //處理符號
void check(char c)
if(c == '(' || c == ')')
coll2.pop();}}
else
else
}} //從coll中取出元素,分配元素到coll2和coll3中
void allocate()
else
check(c);
} while(!coll2.empty())
}public:
expression(string str): coll1(str)
//計算字尾表示式
int calculate(char bianyuan, int array, int n)
cout << endl; }}
void findhalfeuler(int n)
cout << endl;
} }}int main() else
cout << "不連通" << endl;
if (res == 1)
findeuler(n);
if (res == 2)
findhalfeuler(n);
return 0;
}
其實第二個程式我不確定正確,我只用過有限的幾個測試用例,如果要測試的話,得改一下生成鄰接矩陣的函式。
突然發現,資料結構演算法這些東西好有趣~
離散數學實驗
include using namespace std char c 5 5 int banqun 0 是否為半群 int duyi 0 是否為獨異點 int yao 確定么元 void ifre for int j 0 j 4 j if flag else cout 每行每列都不存在重複元素 vo...
離散數學實驗一
usr bin env python coding utf 8 time 2020 9 18 09 33 author albert darren file 離散數學實驗一.py software pycharm 實驗1 defexperiment1 loop count 4 truth value...
合工大離散數學實驗 油管實驗
實驗準備 最小生成樹問題,求最小生成樹的prim演算法 實驗目的 運用最小生成樹思想和求最小生成樹程式解決實際問題 實驗過程 八口海上油井相互間距離如下表,其中1號井離海岸最近,為5km。問從海岸經1號井鋪設油管把各井連線起來,怎樣連油管長度最短 為便於檢修,油管只准在油井處分叉 prim演算法原理...