離散數學實驗課中有趣的題目

2021-06-27 18:05:06 字數 1261 閱讀 1627

這學期上離散數學實驗課,遇到了兩個有意思的題目

第乙個是輸入表示式例如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演算法原理...