2011-03-24 75 views
4

每當這些問題中的一個出現在我的任務中時,我就錯了......任何人都可以幫助我理解?還是老師的鑰匙? (有沒有辦法,我知道,因爲我沒有給出正確的答案,它只是讓我知道,我的錯。)我在應用德摩根定律方面遇到問題...反饋?

假設x = 7y = 5。施加德摩根定律,選擇低於該邏輯表達式是等效於以下邏輯表達式:!(x>5)||!(y>7)

的(a)!(x>5)&&!(y>7)

(b)中!((x>5)||(y>7))

(c)中!(x>5)&&(y>7)

(d)(x>5)||!(y>7)

(E)上述

沒有我會選擇B作爲答案,但因爲我至今得到他們都錯了,我害怕繼續沒有一些幫助。

的方式我明白這一點,你可以把它放在整個語句的前面,變化,整合兩種!成一個:

!(a)||!(b)

!((a)||(b))

+2

是的,你可以合併,但你也必須改變邏輯運算符。我會說答案可能是!((x> 5)&&(y> 7)),這似乎不是答案,所以我會選擇e。以上都不是。 – walkingTarget 2011-03-24 14:02:45

+2

奇怪的問題:如果你「假設x = 7和y = 5」,那麼原始表達式的計算結果爲真,答案爲d。 – Henrik 2011-03-24 14:09:05

回答

6

Wikipedia,德,摩根定律(這對我來說只是我知道的事情)是

NOT(P和Q)=(非P)OR(NOT Q)

在你的問題中,P映射到(x>5)和Q映射到(y>7)。因此!((x>5)&&(y>7))是你的答案。但是你的名單中沒有這樣的一個。 (如果這是你真正的問題,那麼你的老師是渺茫的,因爲只有一個提議的答案有兩個圓括號,這是一個很大的線索 - 你可以排除b因爲它仍然使用||並排除其他缺乏雙輪括號,直接去e。)

如果你真的不能讓這些東西靜靜的爲你,使用問題提供的示例值。 (如果需要的話,補充一點。)x>5對於x = 7是正確的。對於y = 5,y>7是錯誤的。所以你有!true || !false,這是false || true,這是true。評估每個可能的表達式,並排除那些不會出現在相同答案中的表達式。如果您仍然迷路,請選取不同的樣本值並重復。其中一個可能的答案會保持匹配,否則不會,所以你會選擇「以上都不是」。即使你不明白爲什麼,這也會爲你贏得成功。

至於爲什麼,這是因爲&&||的相反行爲。從&&獲得真實的唯一方法是雙方都是真實的。從||得到一個錯誤的唯一方法是雙方都是錯誤的。如果用!翻轉參數,則可以翻轉操作符並得到相反的結果。

+0

感謝您回答它爲什麼會起作用,這真的有助於我的理解,我找到了相同的維基頁面,以及我在哪裏提出了合併理論......而且這位老師很sl。。他總是給我錯誤的代碼snippits,並詢問輸出是什麼,他的程序總是輸出0,如果我在他的任務中輸入0,它是錯誤的......放入假,它被標記爲正確。這是我第一次嘗試學習一門編程語言,因此它非常令人興奮,因爲它只是一個在線課程。 – Mike 2011-03-24 14:16:21

2

不,在轉換後的版本中工作的轉換是!(a)||!(b)!(a && b) - 「和」而不是「或」。

你的表情是

!(x>5)||!(y>7) == (x <= 5) || (y <= 7) 

,我不認爲任何匹配的那些。我會去E.

+0

非常感謝,我只是認爲這是一個整合,所以我從來沒有嘗試任何&&答案,即使它是有道理的。 – Mike 2011-03-24 14:08:35

+1

這個網站太神奇了......除了谷歌和我的書以外,我還沒有資源,有時候很難理解一些概念。能夠問真正的人誰願意幫助我學習只是突出!再次感謝所有回答並幫助我理解的人。順便說一句,在閱讀所有答案後,我能夠回答這個類型的每個問題,而且每次都是同一個問題的隨機版本。乾杯! – Mike 2011-03-24 14:39:52

3

在這裏,看看德摩根定律:up http://en.wikipedia.org/wiki/De_Morgan's_laws!它不像你描述的那樣,但是

NOT (P AND Q) = (NOT P) OR (NOT Q) 
NOT (P OR Q) = (NOT P) AND (NOT Q) 

注意AND變成OR。就像OR變成AND一樣。否定(NOT)進入論證。

因此,對於!(x>5) || !(y>7)第一條規則適用,因爲它是一樣的右手側P(x>5)Q(y>7)。首先將運營商從||(OR)更改爲&&(AND),然後將!(NOT)置於前面。其結果是

!(x>5) || !(y>7) = !((x>5) && (y>7)) 

這看起來就像c。如果有括號,或者就像B如果有& &,而不是||的。有了這些選項,答案是e。

1

德摩根定律閱讀:

  1. ¬(A或B)=¬A和¬B
  2. ¬(A和B)=¬A或¬B

注意你也必須與運營商結合。

這個例子可能有助於澄清思考過程。

如果我想要的東西不是紅色或球,那麼我所追求的既不是紅色也不是球。但是,如果我想要的東西不是紅色和球,那麼我正在尋找一個不是紅色或不是球的物體。

所以表達式的再加工將是

!((X> 5)& &(Y> 7))

哪個未給出(E)。然而,如果x = 7且y = 5,則(x> 5)但是!(y> 7),因此表達式!(x> 5)||!(y> 7)的計算結果爲真。 例如我想要的東西不是紅色(x> 5)或不是球(y> 7),我得到一個紅色桶(false || true)。

[編輯]我輸入太慢了。

1

應用德摩根定律(有兩個人,但也有對稱)將改變:

(X> 7)|| !(Y> 5)

到:

((X> 7)& &(Y> 5))

我以爲是什麼選項C應該是,但是你的方式!寫了它的外部括號丟失。你幾乎所有事情都做對了,你只是忘記了操作員也會改變。

這是我知道處理德摩根規則最簡單的方法。假設你有這樣的東西: ((A)OP(B)) 其中OP是「或」或「和」。確保你寫出了所有的括號,即使外部的是多餘的。現在否定所有括號並切換操作符「或」變爲「和」,反之亦然。所以你得到的是這樣的: !(!(A)OTHER_OP!(B)) 現在你通常會得到雙重否定的,可以刪除。但確定正確的結構(三個括號和匹配的運算符)是關鍵。

1

你可以將德摩根定律視爲切換。

設P,Q爲命題,讓OP爲{AND,NOT}的一個元素。那麼下列成立:

NOT(P OP Q)=(NOT P)(NOT OP)(NOT Q)

其中 「NOT AND」 表示OR和 「NOT OR」 表示與。德摩根定律只是切換所有真值和操作符。