第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在編程中 !(~A && ~B) 比 (A||B) 好嗎?

在編程中 !(~A && ~B) 比 (A||B) 好嗎?

茅侃侃 2023-05-10 17:09:52
我正在開發(fā)Java,我正在使用它IntelliJ作為我的 IDE。我寫了一個if聲明如下。if( list1.size() >= 1 || list2.contains(itemX) ) {    //do something}IntelliJ建議轉(zhuǎn)換 ( DeMorgan's Law) 并將其轉(zhuǎn)換為:if( ! ( list1.size() < 1 && !( list2.contains(itemX) ) ) ) {    //do something}所以它應(yīng)用了一種非常普遍的離散數(shù)學(xué)理論來簡化布爾表達式。我想知道的是這如何優(yōu)化任何東西?||如果第一部分本身為真,運算符無論如何不會執(zhí)行整個條件,并且僅當(dāng)?shù)谝徊糠譃榧贂r才執(zhí)行 RHS。轉(zhuǎn)化后的條件是否有效?如何?
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經(jīng)驗 獲得超5個贊

這有點主觀,但一個好的一般經(jīng)驗法則是盡可能多地消除復(fù)雜性。所謂復(fù)雜性,是指您需要執(zhí)行多少操作才能獲得所需的結(jié)果。

從這個意義上說,!a && !b這比!(a || b)因為在一種情況下你否定 a 和 b,然后執(zhí)行 OR 和運算符導(dǎo)致 3 個操作,而在后一種情況下,你只執(zhí)行 2 個操作。當(dāng)然這是空洞的,當(dāng)你'我們談?wù)摰氖莾煞N情況,但是當(dāng)你處理很多情況時,這會產(chǎn)生很大的不同。

但是在您的場景中,您的 IDE 更改它沒有任何意義,因為后者的操作數(shù)量較少??赡苁?IDE 試圖拼命吸引你 :)

希望這是有道理的!


查看完整回答
反對 回復(fù) 2023-05-10
?
莫回?zé)o

TA貢獻1865條經(jīng)驗 獲得超7個贊

兩者都是完全相同的陳述。

我同意如果第一部分為真,則 OR 運算符不會評估第二部分,但是,如果第一部分為假,AND 運算符也不會評估第二部分。

事實上,與 A||B 相比,評估 ~(~A && ~B) 將花費更多的時間和空間。

希望這可以幫助 :)


查看完整回答
反對 回復(fù) 2023-05-10
  • 2 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號