हैं || तथा ! ऑपरेटरों को हर संभव तार्किक अभिव्यक्ति बनाने के लिए पर्याप्त है?


294

उदाहरण के लिए तार्किक अभिव्यक्ति ( a && b ) (दोनों aऔर bबूलियन मूल्य हैं) को लिखा जा सकता है !(!a || !b)। क्या इसका मतलब यह नहीं है कि &&"अस्वाभाविक" है? क्या इसका मतलब यह है कि सभी तार्किक अभिव्यक्तियों को केवल उपयोग करके बनाया जा सकता है ||और !?


83
यह एक जावा अंक की तुलना में एक मूल प्रतीकात्मक तर्क प्रश्न है, लेकिन हाँ। OR और NOT संयोजन में सब कुछ बनाने के लिए इस्तेमाल किया जा सकता है। AND और NOT के साथ भी ऐसा ही है। उदाहरण के लिए, जब मैं स्कूल में था तो हमें केवल NAND गेट का उपयोग करके सब कुछ बनाने के लिए सिखाया गया था क्योंकि वे कम ट्रांजिस्टर लेते थे।
azurefrog

79
ऐसा करने के लिए वांछनीयता के साथ इस तरह से एक बयान लिखने की क्षमता को भ्रमित न करें। सिंथेटिक चीनी एक अच्छी चीज है।
azurefrog

20
कई लॉजिक गेट चिप्स केवल NAND या NOR गेट्स प्रदान करते हैं क्योंकि उनके साथ सभी ऑपरेशनों को लागू करना संभव है और यह उन्हें उत्पादन करने के लिए सस्ता बनाता है - A and B == !A nor !B == !(!A or !B)। इसी तरह A or B == !A nand !B == !(!A and !B)। स्पष्ट रूप से एक NAND या NOR के दोनों इनपुट के लिए एक ही मान पास करना एक साधारण परिणाम के समान परिणाम देगा। XOR और XNOR भी संभव हैं लेकिन अधिक जटिल हैं। डी मॉर्गन का प्रमेय देखें
मूल

16
क्या यह कंप्यूटर विज्ञान का प्रश्न नहीं है? मुझे यहाँ कोई कोड नहीं दिख रहा है। विशेष रूप से, यह व्यवहार में सही है या नहीं, कार्यान्वयन में भिन्न होगा, जैसे C ++ में ऑपरेटिंग ओवरलोडिंग के साथ यह सामान्य रूप से नहीं है।
लाइटवेट रेसें ऑर्बिट में

6
@SnakeDoc मुझे नहीं लगता कि यहाँ कोई ऐसा काम करने की वकालत कर रहा है। मेरा मानना ​​है कि यह प्रश्न एक तार्किक, वास्तव में एक प्रोग्रामिंग की तुलना में अधिक था।
ryuu9187 19

जवाबों:


425

हाँ, के रूप में अन्य उत्तर में बताया, ऑपरेटरों के सेट के शामिल ||और !है कार्यात्मक पूरा । यहाँ इस बात का एक रचनात्मक प्रमाण, कैसे बूलियन चर के बीच सभी सोलह संभव तार्किक संयोजियों व्यक्त करने के लिए उन्हें इस्तेमाल करने दिखा है Aऔर B:

ध्यान दें कि NAND और NOR दोनों कार्यात्मक रूप से पूर्ण होते हैं (जो ऊपर दिए गए समान विधि का उपयोग करके साबित किया जा सकता है), इसलिए यदि आप यह सत्यापित करना चाहते हैं कि ऑपरेटरों का एक सेट कार्यात्मक रूप से पूर्ण है, तो यह दिखाना पर्याप्त है कि आप NAND या NOR को व्यक्त कर सकते हैं। इसके साथ।

ऊपर सूचीबद्ध प्रत्येक संयोजनों के लिए वेन आरेख दिखाने वाला एक ग्राफ यहां दिया गया है:

यहां छवि विवरण दर्ज करें

[ स्रोत ]


20
यह बताना कठिन है कि क्या यह प्रश्न है, लेकिन यह उत्तर शॉर्ट-सर्किट व्यवहार को संबोधित नहीं करता है (प्रासंगिक, चूंकि प्रश्न इसके ||बजाय सवाल पूछता है |) या साइड-इफेक्ट्स (प्रासंगिक है क्योंकि सही, झूठ, XOR और XNOR के विस्तार का मूल्यांकन करते हैं मूल स्थिरांक या ऑपरेटर की तुलना में उनके तर्क अधिक बार)।
डेविड रिचेर्बी

5
मंडलियों वाले वृत्त और संक्रमण एक हेस डायग्राम ( en.wikipedia.org/wiki/Hasse_diagram ) बनाते हैं । (याय, मैंने आज कुछ नया सीखा!)
कैस्पर वैन डेन बर्ग

5
@DavidRicherby यह सच है। XOR, XNOR, सच और झूठ के अलावा, जहाँ तक मैं बता सकता हूँ, साइड इफेक्ट्स और मूल्यांकन की संख्या बिल्ट-इन समकक्षों की तरह ही होनी चाहिए (जैसे !(!A || !B)कि एक ही शॉर्ट-सर्कुलेटिंग और मूल्यांकन की गिनती A && B)। मुझे नहीं लगता कि आप अतिरिक्त निर्माण (जैसे a ? !b : b) के बिना XOR और XNOR के लिए ऐसा कर सकते हैं , और सही या गलत एक समस्या नहीं है यदि आप मूल्यों को बचा सकते हैं, क्योंकि आप कुछ डमी बूलियन चर को परिभाषित trueऔर falseउपयोग करके अपना कार्यक्रम शुरू कर सकते हैं ।
पीटर ओल्सन

यह ध्यान रखना दिलचस्प है कि ऊपर दी गई सूची में 16 ऑपरेशन शामिल हैं। यह इस तथ्य के अनुरूप है कि उस मामले के लिए 16 संभावित सत्य तालिकाएं हैं जहां आपके पास 2 इनपुट और 1 आउटपुट हैं।
पॉल आर

1
बस लोगों के संदर्भ के लिए एक तालिका के रूप में एक और दृश्य जोड़ना चाहता था । ऊपर के समान स्रोत।
अगस्त

125

आप जो वर्णन कर रहे हैं वह कार्यात्मक पूर्णता है

यह तार्किक ऑपरेटरों के एक सेट का वर्णन करता है जो "सभी संभावित सत्य तालिकाओं को व्यक्त करने" के लिए पर्याप्त है। आपका जावा ऑपरेटर सेट, { ||, !}, पर्याप्त है; यह सेट {∨, which} से मेल खाता है, जिसे "न्यूनतम कार्यात्मक पूर्ण ऑपरेटर सेट" अनुभाग के तहत सूचीबद्ध किया गया है।

सभी सत्य तालिकाओं के सेट का अर्थ है 4 बूलियन मानों के सभी संभावित सेट जो 2 बूलियन मानों के बीच एक ऑपरेशन का परिणाम हो सकते हैं। क्योंकि एक बूलियन के लिए 2 संभावित मूल्य हैं, 2 4 , या 16, संभव सत्य तालिकाओं हैं।

A B | 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
----+------------------------------------------------
T T | T  T  T  T  T  T  T  T  F  F  F  F  F  F  F  F
T F | T  T  T  T  F  F  F  F  T  T  T  T  F  F  F  F
F T | T  T  F  F  T  T  F  F  T  T  F  F  T  T  F  F 
F F | T  F  T  F  T  F  T  F  T  F  T  F  T  F  T  F

यहां सत्य तालिका संख्याओं (0-15) की एक तालिका है, ||और !संयोजन जो इसे उपजते हैं, और एक विवरण।

Table  |  Operation(s)                    | Description
-------+----------------------------------+-------------
  0    | A || !A                          | TRUE
  1    | A || B                           | OR
  2    | A || !B                          | B IMPLIES A
  3    | A                                | A
  4    | !A || B                          | A IMPLIES B
  5    | B                                | B
  6    | !(!A || !B) || !(A || B)         | XNOR (equals)
  7    | !(!A || !B)                      | AND
  8    | !A || !B                         | NAND
  9    | !(A || !B) || !(!A || B)         | XOR
 10    | !B                               | NOT B
 11    | !(!A || B)                       | NOT A IMPLIES B
 12    | !A                               | NOT A
 13    | !(A || !B)                       | NOT B IMPLIES A
 14    | !(A || B)                        | NOR
 15    | !(A || !A)                       | FALSE

ऐसे कई कार्यात्मक पूर्ण सेट हैं, जिनमें एक तत्व सेट {NAND} और {NOR} शामिल हैं, जिनके जावा में संबंधित एकल ऑपरेटर नहीं हैं।


4
संपादित करने के लिए +1। वोट की संख्या में अंतर के बावजूद, मुझे लगता है कि आपका जवाब वास्तव में अब मेरी तुलना में अधिक विस्तृत है।
पीटर ओल्सन

ट्रुथ टेबल्स मुझे लगा कि मैंने यूनिवर्सिटी में फर्स्ट ईयर के बाद उन्हें पीछे छोड़ दिया है
बरकर्मन 01

80

हाँ।

NOR गेट्स से सभी लॉजिक गेट बनाए जा सकते हैं।

चूंकि NOR गेट एक NOT और OR से बनाया जा सकता है, इसलिए परिणाम इस प्रकार है।


64
@PaulDraper या NAND गेट्स
स्लीपबेटमैन

25
चांद पर दो लोगों को उतारने के लिए 4100 NOR गेट्स लगे।
हंस पैसेंट

4
@ हंसपैंट और कुछ तार। बहुत सारे तार। (कोर रस्सी मेमोरी, टिन नहीं विविधता कर सकते हैं।)
एक CVn

3
@ हंसपसंद कभी-कभी मैं चाहता हूं कि स्टैक एक्सचेंज विकिपीडिया था, तो मैं [citation-needed]वहीं एक चिह्न डालूंगा ।
साइमन फोर्सबर्ग


64

DeMorgan के कानूनों पर पढ़ने के लिए समय निकालेंयदि आप कर सकते हैं तो ।

आपको इसका उत्तर पढ़ने के साथ-साथ तार्किक प्रमाणों के संदर्भ में मिलेगा।

लेकिन अनिवार्य रूप से, इसका उत्तर हां है।

EDIT : गवाहों के लिए, मेरा कहना यह है कि एक तार्किक रूप से एक और अभिव्यक्ति से एक अभिव्यक्ति का अनुमान लगा सकता है, और इसके विपरीत। तार्किक तुल्यता और अनुमान के लिए और भी कानून हैं, लेकिन मुझे लगता है कि यह एक सबसे बड़ा एप्रोपोस है।


EDIT 2 : यहां सत्य-सारणी के माध्यम से एक प्रमाण दिया गया है, जो निम्नलिखित अभिव्यक्ति की तार्किक समानता को दर्शाता है।

DeMagon का नियम: !(!A || !B) -> A && B

 _____________________________________________________
| ए | B | ! ए | ! बी | ! ए || ! बी | ! (ए !! बी!) | A && B |
-------------------------------------------------- -----
| 0 | 0 | 1 | 1 | 1 | 0 | 0 |
-------------------------------------------------- -----
| 0 | 1 | 1 | 0 | 1 | 0 | 0 |
-------------------------------------------------- -----
| 1 | 0 | 0 | 1 | 1 | 0 | 0 |
-------------------------------------------------- -----
| 1 | 1 | 0 | 0 | 0 | 1 | 1 |
_______________________________________________________

19
कुछ लोगों को अपने "कार्यात्मक पूर्णता" के हिस्से के रूप में वोट करना पड़ता है
जेसी

3
+ 27 / -2 पर, मैं एक भटका डाउनवोट के बारे में ज्यादा चिंता नहीं करता।
बजे एक CVn

2
@ माइकलकॉर्जिंग मैं बस उत्सुक हूं कि क्यों कुछ लोगों ने सोचा कि मेरा जवाब मददगार नहीं था / हानिकारक था।
ryuu9187

3
आम तौर पर उत्तर जो लिंक पर भरोसा करते हैं, वे बहुत ज्यादा पसंद नहीं किए जाते हैं (जैसा कि लिंक मर जाते हैं), लेकिन इस मामले में किसी भी तरह से डेमर्गन के कानूनों के बहुत सारे वैकल्पिक स्पष्टीकरण हैं, कि मुझे कोई मुद्दा नहीं दिखता है - फिर भी, यह मेरा अनुमान है। DV का
user2813274

@ user2813274 स्पष्टीकरण के लिए धन्यवाद। उम्मीद है, मेरे संपादन व्यक्तिगत शोध और उत्तर के बीच अंतर को पाटने में मदद करेंगे।
ryuu9187

11

नंद और NOR सार्वभौमिक हैं जिनका उपयोग वे किसी भी तार्किक ऑपरेशन को बनाने के लिए कर सकते हैं जिसे आप कहीं भी चाहते हैं; अन्य ऑपरेटर प्रोग्रामिंग भाषाओं में उपलब्ध हैं, जो आसानी से लिखने और पठनीय कोड बनाने के लिए उपलब्ध हैं।

इसके अलावा सर्किट में हार्डवेर किए जाने वाले सभी लॉजिकल ऑपरेशंस भी NAND या NOR केवल IC का उपयोग करके विकसित किए जाते हैं।


10

हाँ, बूलियन बीजगणित के अनुसार, किसी भी बूलियन फ़ंक्शन को नाबालिगों या मैक्सिमम के उत्पाद के रूप में व्यक्त किया जा सकता है, जिसे विहित सामान्य रूप कहा जाता है । ऐसा कोई कारण नहीं है कि कंप्यूटर विज्ञान में इस्तेमाल किए गए एक ही ऑपरेटर पर इस तरह के तर्क को लागू नहीं किया जा सकता है।

https://en.wikipedia.org/wiki/Canonical_normal_form

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.