離散數學實驗一

2021-10-11 20:44:37 字數 3440 閱讀 9580

#!/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陣列用來判斷選擇的城市是否已...