W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
以下是一些可以通過(guò)邏輯編程解決的例子 -
匹配數(shù)學(xué)表達(dá)式
實(shí)際上,我們可以通過(guò)使用邏輯編程以非常有效的方式找到未知值。 以下 Python 代碼用于匹配數(shù)學(xué)表達(dá)式 -
考慮先導(dǎo)入下列軟件包 -
from kanren import run, var, fact
from kanren.assoccomm import eq_assoccomm as eq
from kanren.assoccomm import commutative, associative
需要定義要使用的數(shù)學(xué)運(yùn)算 -
add = 'add'
mul = 'mul'
加法和乘法都是交互進(jìn)程。 因此,我們需要指定它,這可以按照以下方式完成 -
fact(commutative, mul)
fact(commutative, add)
fact(associative, mul)
fact(associative, add)
定義變量是強(qiáng)制性的; 這可以如下完成 -
a, b = var('a'), var('b')
需要將表達(dá)式與原始模式相匹配。有以下原始模式,基礎(chǔ)是(5 + a)* b
-
Original_pattern = (mul, (add, 5, a), b)
有以下兩個(gè)表達(dá)式來(lái)匹配原始模式 -
exp1 = (mul, 2, (add, 3, 1))
exp2 = (add,5,(mul,8,1))
輸出可以使用以下命令打印 -
print(run(0, (a,b), eq(original_pattern, exp1)))
print(run(0, (a,b), eq(original_pattern, exp2)))
運(yùn)行此代碼后,將得到以下輸出 -
((3,2))
()
第一個(gè)輸出表示a
和b
的值。 第一個(gè)表達(dá)式匹配原始模式并返回a
和b
的值,但第二個(gè)表達(dá)式與原始模式不匹配,因此沒(méi)有返回任何內(nèi)容。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: