क्या आपने कभी प्रोग्रामिंग में ऐसे परिदृश्य का सामना किया है जहां आपको यह जांचने की आवश्यकता है कि किसी सूची या स्ट्रीम में सभी तत्व एक निश्चित शर्त को पूरा करते हैं या नहीं? कोडिंग में यह एक सामान्य पैटर्न है, लेकिन सूची खाली होने पर क्या होता है? यहीं पर शून्य सत्य की अवधारणा सामने आती है।
इससे पहले कि हम गणितीय परिभाषा में उतरें, आइए यह समझने के लिए कोड में एक व्यावहारिक उदाहरण से शुरुआत करें कि निरर्थक सत्य क्या है।
कल्पना करें कि आपको यह जांचने का काम सौंपा गया है कि किसी सूची के सभी तत्व एक निश्चित शर्त को पूरा करते हैं या नहीं। यदि वे ऐसा करते हैं, तो आप एक विशिष्ट कार्रवाई करते हैं। उदाहरण के लिए, निम्नलिखित जावा कोड स्निपेट पर विचार करें:
public static void main(String[] args) { // Example - 1, expected to do something if (allNumbersAreOdd(Arrays.asList(1, 3, 5))) { System.out.println("do something 1"); } // Example - 2, NOT expected to do anything because NOT all numbers are odd if (allNumbersAreOdd(Arrays.asList(1, 2, 3, 4, 5))) { System.out.println("do something 2"); } // Example - 3, NOT expected to do anything because list is empty so there is no odd number. /* This is the surprising element which is known as "Vacuous truth" and it will print "do something". * It is applicable to both allMatch(Predicate super T> predicate) * and noneMatch(Predicate super T> predicate) */ if (allNumbersAreOdd(Collections.emptyList())) { System.out.println("do something 3"); } } private static boolean allNumbersAreOdd(@Nonnull Listnumbers) { return numbers.stream().allMatch(integer -> integer % 2 != 0); }
तीसरा उदाहरण विशेष रूप से दिलचस्प है। सूची खाली होने पर यह "सभी संख्याएँ विषम" क्यों लौटाता है?
यह व्यवहार शून्य सत्य का उदाहरण है। गणितीय तर्क में, एक कथन जो एक खाली सेट के सभी तत्वों के बारे में कुछ दावा करता है उसे सत्य माना जाता है। ऐसा इसलिए है क्योंकि सेट में कथन का खंडन करने के लिए कोई तत्व नहीं हैं।
विकिपीडिया के अनुसार:
"एक रिक्त सत्य एक कथन है जो दावा करता है कि खाली सेट के सभी सदस्यों के पास एक निश्चित संपत्ति है। ऐसे कथनों को सत्य माना जाता है क्योंकि खाली सेट में कोई प्रति उदाहरण नहीं हैं।"
दूसरे शब्दों में, जब हम कहते हैं, "सेट एस के सभी तत्वों में संपत्ति पी है," और यदि एस खाली है, तो यह कथन शून्य रूप से सत्य है क्योंकि एस में एक भी तत्व नहीं है जो संभावित रूप से संपत्ति पी का उल्लंघन कर सकता है
प्रोग्रामिंग में शून्य सत्य को समझना महत्वपूर्ण है क्योंकि यह आपके कोड के तर्क और परिणामों को प्रभावित कर सकता है, खासकर जब संग्रह, स्ट्रीम, या किसी भी परिदृश्य से निपटते समय जहां आपका इनपुट संभावित रूप से खाली हो सकता है।
निष्कर्ष
अगली बार जब आप कोई ऐसा फ़ंक्शन लिख रहे हों जो जाँचता है कि किसी सूची या स्ट्रीम के सभी तत्व किसी शर्त को पूरा करते हैं या नहीं, तो रिक्त सत्य की अवधारणा को याद रखें। यह बताता है कि इनपुट खाली होने पर आपका कोड अप्रत्याशित तरीके से व्यवहार क्यों कर सकता है। इसके बारे में जागरूक होने से आपको अधिक मजबूत और पूर्वानुमानित कार्यक्रम लिखने में मदद मिल सकती है।
यदि आपके पास एक खाली सूची/स्ट्रीम की आवश्यकता है जिसका मूल्यांकन सत्य के रूप में नहीं किया जाना चाहिए, तो आपको सूची/स्ट्रीम पर अतिरिक्त जांच पर विचार करना होगा।
private static boolean allNumbersAreOdd(@Nonnull Listnumbers) { return !numbers.isEmpty() && numbers.stream().allMatch(integer -> integer % 2 != 0); }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3