#!/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 =[0
,1]while loop_count >0:
# 請求使用者輸入
p_value =
eval
(input
('請輸入命題p的真值(1或者0):'))
q_value =
eval
(input
('請輸入命題q的真值(1或者0):'))
if p_value not
in truth_value or q_value not
in truth_value:
print
('您的輸入不合法,請重新輸入'
)else
:print
('邏輯運算結果'
.center(20,
'-')
)print
('p{}q的真值為:{}'
.format
(chr
(ord
('\u2227'))
, p_value & q_value)
)print
('p{}q的真值為:{}'
.format
(chr
(ord
('\u2228'))
, p_value | q_value)
)print
('p{}q的真值為:{}'
.format
('^'
, p_value ^ q_value)
)print
('p{}q的真值為:{}'
.format
(chr
(ord
('\u2192'))
,int
(not p_value or q_value)))
print
('p等價於q的真值為:{}'
輸出命題公式:(p∨q)→r的真值表,主析取正規化,主合取正規化
"""truth_value =[0
,1]# 主析取正規化
dnf =
# 主合取正規化
cnf =
# 列印表頭
print
('真值表'
.center(20,
'-')
)print
(' {} {} {} | | {}'
.format
('p'
,'q'
,'r'
,'(p \u2228 q)'
,'(p \u2228 q) \u2192 r'))
for p in truth_value:
for q in truth_value:
for r in truth_value:
print
(' {} {} {} | | '
.format
(p, q, r,
(p | q)
,int
(not
(p | q)
or r)))
decimal_index =
int(
str(p)
+str
(q)+
str(r),2
)ifnot(p | q)
or r:
'm'+
str(decimal_index)
)else
:'m'
+str
(decimal_index)
)print
('主合取正規化:'
+'\u2227'
.join(cnf)
)print
('主析取正規化:'
+'\u2228'
.join(dnf)
)
def
experiment3
(start:
int, stop:
int)
:# 存放滿足要求的整數
num_set =
# 取出尋找範圍內的每乙個正整數
for number in
range
(start, stop +1)
: min_num =
1 max_num =
int(
pow(number,1/
3))# 取出第乙個數
count =
0for first_num in
range
(min_num, max_num +1)
:# 取出第二個數
for second_num in
range
(min_num, max_num)
:if number ==
pow(first_num,3)
+pow
(second_num,3)
:# print('{}={}^3+{}^3'.format(number, first_num, second_num))
count +=
1if count ==2:
return num_set
if __name__ ==
'__main__'
:# double_cube_int()
# 執行效率:35.3 ms ± 8.63 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
print
(experiment3(10,
1000))
# 執行結果:[559, 855]
# 執行效率:55.9 ms ± 2.23 ms per loop((mean ± std. dev. of 7 runs, 10 loops each)
# experiment2()
離散數學實驗
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...
合工大離散數學實驗 油管實驗
實驗準備 最小生成樹問題,求最小生成樹的prim演算法 實驗目的 運用最小生成樹思想和求最小生成樹程式解決實際問題 實驗過程 八口海上油井相互間距離如下表,其中1號井離海岸最近,為5km。問從海岸經1號井鋪設油管把各井連線起來,怎樣連油管長度最短 為便於檢修,油管只准在油井處分叉 prim演算法原理...
離散數學實驗報告存檔
2018離散數學實驗報告存檔 旅行經銷商問題 函式addpace用來將權重相加 return addpace int conpace int str 6 conpace 函式用來比較各個城市的最短路,得出最優路 return min void main void flag陣列用來判斷選擇的城市是否已...