तारपीट से बच (पुलिस)


9

यह है एक भाषाओं को परिभाषित करने और साबित करने के लिए वे ट्यूरिंग के आसपास आधारित हैं।

यह पुलिस का धागा है। लुटेरों का धागा यहीं है

पुलिस

पुलिस वाले के रूप में, आप दो चीजें तैयार करेंगे:

  • एक प्रोग्रामिंग भाषा, या अन्य कम्प्यूटेशनल प्रणाली का एक औपचारिक विनिर्देश। (कम्प्यूटेशनल सिस्टम नीचे परिभाषित किए गए हैं।)

  • एक सबूत है कि आपका सिस्टम पूरी तरह से ट्यूरिंग है, नीचे कुछ सख्त परिभाषा के अनुसार।

आप अपनी भाषा के अपने विनिर्देश पोस्ट करेंगे, और लुटेरे इसकी ट्यूरिंग पूर्णता साबित करके इसे "क्रैक" करने का प्रयास करेंगे। यदि एक सप्ताह के भीतर आपका सबमिशन क्रैक नहीं होता है, तो आप इसे सुरक्षित के रूप में चिह्नित कर सकते हैं और अपना प्रमाण पोस्ट कर सकते हैं। (यदि कोई व्यक्ति आपके प्रमाण में कोई दोष पाता है, तो आपका जवाब अमान्य हो सकता है, जब तक कि आप इसे ठीक नहीं कर सकते।)

यह है एक , इसलिए विजेता वह जवाब होगा जिसमें सबसे अधिक वोट हैं, और जो फटा या अमान्य नहीं है। चुनौती खुली-समाप्त है - मैं एक उत्तर स्वीकार नहीं करूंगा।

इस चुनौती के लिए, एक कम्प्यूटेशनल प्रणाली को चार चीजों के रूप में परिभाषित किया जाएगा:

  • एक "प्रोग्राम सेट" P। यह एक अनगिनत अनंत सेट होगा, उदाहरण के लिए तार, पूर्णांक, द्विआधारी पेड़, एक ग्रिड पर पिक्सेल का विन्यास, आदि (लेकिन नीचे तकनीकी प्रतिबंध देखें।)

  • एक "इनपुट सेट" I, जो एक अनगिनत अनंत सेट भी होगा, और इसे उसी रूप में सेट करने की आवश्यकता नहीं है P(हालांकि यह हो सकता है)।

  • एक "उत्पादन सेट" Oहै, जो इसी तरह एक गणनीय अनंत सेट हो जाएगा, और हो सकता है या के रूप में ही नहीं हो सकता है PयाI

  • एक निर्गम के उत्पादन के लिए एक नियतात्मक, यंत्रवत प्रक्रिया oकार्यक्रम से pऔर इनपुट i, जहां p, iऔर oके सदस्य हैं P, Iऔर Oक्रमशः। यह प्रक्रिया ऐसी होनी चाहिए जो सिद्धांत रूप में, ट्यूरिंग मशीन या कम्प्यूटेशन के अन्य सार मॉडल पर लागू की जा सके। कार्यक्रम और उसके इनपुट के आधार पर प्रक्रिया निश्चित रूप से रुकने में विफल हो सकती है।

सेट P, Iऔर Oऐसा होना चाहिए कि आप उन्हें कम्प्यूटेशनल तरीके से स्ट्रिंग्स के रूप में व्यक्त कर सकें। (सबसे समझदार विकल्पों के लिए यह कोई फर्क नहीं पड़ेगा; यह नियम आपको अजीब सेट चुनने से रोकने के लिए मौजूद है, जैसे ट्यूरिंग मशीनों का सेट जो रुकना नहीं है।)

ट्यूरिंग पूर्णता को निम्नलिखित के रूप में परिभाषित किया जाएगा:

  • किसी भी गणना कर सका आंशिक समारोह के लिए fसे Iकरने के लिए O, वहाँ एक कार्यक्रम में मौजूद है pमें Pइस तरह के यह देखते हुए कि pऔर इनपुट i, आउटपुट है f(i), तो f(i)एक मूल्य है। (अन्यथा कार्यक्रम रुकता नहीं है।)

उपरोक्त परिभाषा में "कम्प्यूटेबल" शब्द का अर्थ है "ट्यूरिंग मशीन का उपयोग करके गणना की जा सकती है"।

ध्यान दें कि न तो नियम 110 और न ही बिटकॉइन चक्रीय टैग इस परिभाषा से ट्यूरिंग-पूर्ण हैं, क्योंकि उनके पास आवश्यक इनपुट-आउटपुट संरचना नहीं है। लैम्ब्डा पथरी पूरा ट्यूरिंग है, लंबे समय के रूप के रूप में हम परिभाषित Iऔर Oहोना करने के लिए चर्च अंकों के । (यह ट्यूरिंग-पूर्ण नहीं है अगर हम ले Iऔर Oसामान्य रूप में लैम्ब्डा भाव किया जाना है।)

ध्यान दें कि आपको अपनी भाषा का कार्यान्वयन प्रदान करने की आवश्यकता नहीं है, लेकिन यदि आप चाहें तो अपने उत्तर में एक को शामिल करने के लिए आपका स्वागत है। हालांकि, आपको किसी भी तरह से भाषा को परिभाषित करने के लिए कार्यान्वयन पर भरोसा नहीं करना चाहिए - कल्पना अपने आप में पूरी होनी चाहिए, और अगर कल्पना और कार्यान्वयन के बीच विरोधाभास है तो इसे कार्यान्वयन में बग के रूप में माना जाना चाहिए।


9
क्षमा करें दोस्तों, लेकिन लोकप्रियता-प्रतियोगिता है एक उद्देश्य जीतने कसौटी। पॉप-कॉन होने के नाते विषय से चुनौती नहीं मिलती है, और कभी नहीं किया है। सबसे हाल ही में मेटा चर्चा इसलिए यद्यपि आप में से पांच यह अलग क्या तुम सच में पर खड़ा करने के लिए कोई पैर है होना करने के लिए पसंद कर सकते हैं इस के पक्ष में +27 का एक आम सहमति है। चूंकि यह सवाल सहमत नीति के खिलाफ बंद कर दिया गया है, मेरा अनुरोध है कि इसे फिर से खोल दिया जाए।
नथानिएल

2
(ध्यान दें कि व्हाट्सएप ने इसे अलग कारण से बंद कर दिया है।)
user202729

2
कृपया "I असहमत" या "मुझे यह पसंद नहीं है" बटन के रूप में करीबी वोट का उपयोग न करें। साइट नीति लागू करने के लिए करीबी वोटों का उपयोग किया जाता है। यदि आप किसी नीति से असहमत हैं, तो इसे मेटा में ले जाएं - उन चुनौतियों को बंद न करें, जो समुदाय की सहमति से विषय पर हैं।
मेगो

1
@ मैगो मैंने इसे बहुत व्यापक के रूप में बंद करने के लिए मतदान किया, लेकिन मुझे यह भी लगता है कि यह पॉप-कॉन्स के लिए हमारे मौजूदा नियमों द्वारा ऑफ-टॉपिक है। हम उम्मीद करते हैं कि लोकप्रियता प्रतियोगिताओं में "लक्ष्य की स्पष्ट विशिष्टता होनी चाहिए", यह सवाल सबसे रचनात्मक तरीके से एक एक्स है। यह मेरे लिए स्पष्ट है कि एक वैध उत्तर के अलावा कोई उद्देश्य नहीं है और यह कि खुले रखने के लिए पॉप-कॉन टैग संलग्न है।
तदर्थ गार्फ हंटर

2
@WhatWizard लक्ष्य को प्राप्त किया जाना चाहिए गैर-स्पष्ट रूप से ट्यूरिंग पूर्ण हो रहा है, गैर-स्पष्टता के साथ एक सप्ताह के भीतर क्रैक नहीं होने का आकलन किया गया है। क्या यह स्पष्ट नहीं है?
नथानियल

जवाबों:


10

ब्लाइंडफोल्डेड अरिथमेटिक

संभवतः काफी आसान भाषा है, अपेक्षाकृत बोलने के साथ। (इस पर सीमाएं हैं कि मैं कितनी कठिन भाषा बना सकता हूं क्योंकि मुझे इसे साबित करना है ट्यूरिंग-खुद को पूरा!)

इस भाषा के लिए, प्रोग्राम सेट ब्लाइंडफोल्डेड अंकगणितीय कार्यक्रमों का सेट है जैसा कि नीचे दिए गए अनुभाग "प्रोग्राम" में दिया गया है, इनपुट सेट पॉजिटिव पूर्णांकों का सेट है, और आउटपुट सेट पूर्णांकों का सेट है (संपूर्ण सेट, केवल नहीं सकारात्मक पूर्णांक)।

यह भाषा काफी दिलचस्प है - शायद व्यावहारिक रूप से भी उपयोगी है - क्योंकि इसमें नियंत्रण प्रवाह की अधिक या कम कुल कमी है, पूरी तरह से संख्याओं पर गणना के आधार पर जो आप देख नहीं सकते हैं। यह होमोमोर्फिक एन्क्रिप्शन सिस्टम के अंदर कार्यक्रमों को लागू करने के लिए भाषा के रूप में संभावित रूप से उपयोगी बनाता है ।

विशिष्टता

ब्लाइंडफोल्डेड अरिथमेटिक निम्नलिखित विशेषताओं के साथ एक गूढ़ प्रोग्रामिंग भाषा है:

आधार सामग्री भंडारण

एक रनिंग ब्लाइंडफोल्डेड अंकगणित कार्यक्रम की एक अवस्था में छह चर होते हैं, जिनमें से प्रत्येक पूर्णांक को स्टोर कर सकता है। (कैसे बड़े या छोटे इन पूर्णांकों प्राप्त कर सकते हैं पर कोई सीमा नहीं है, विशेष रूप से, वे नकारात्मक जा सकते हैं।) चर कहा जाता है a, b, c, d, e, और i

कार्यक्रम के शुरू में, aकरने के लिए eसमावेशी प्रत्येक 0 initialised, और कर रहे हैं iएक सकारात्मक पूर्णांक उपयोगकर्ता इनपुट से लिया करने के लिए initialised है। (यदि कोई इनपुट उपलब्ध नहीं है, i1. के लिए आरंभिक है)

यदि प्रोग्राम निष्पादन को समाप्त कर देता है (यह केवल शून्य से विभाजन के कारण हो सकता है), iतो विभाजन के प्रयास से पहले मूल्य को प्रोग्राम के आउटपुट के रूप में उपयोग किया जाता है।

कार्यक्रम

एक ब्लाइंडफोल्डेड अंकगणित कार्यक्रम कमांडों की एक सूची है, जिनमें से प्रत्येक के निम्न रूप हैं (जहां v को किसी भी चर नाम से बदला जा सकता है, संभवतः इसका उपयोग किए जाने पर हर बार एक अलग नाम होता है):

  • v = v + v
  • v = v - v
  • v = v * v
  • v = v / v

ध्यान दें कि कमांड के प्रत्येक ऑपरेंड को एक चर होना चाहिए; यह भाषा शाब्दिक पूर्णांकों के उपयोग की अनुमति नहीं देती है।

प्रोग्राम के निष्पादन को अनुक्रम में प्रत्येक कमांड को चलाकर किया जाता है, और फिर शुरू करने के लिए वापस लूपिंग किया जाता है और कमांड को फिर से अनुक्रम में चलाना जारी रखा जाता है, विज्ञापन इनफिनिटम (या जब तक शून्य से विभाजित करने का प्रयास नहीं किया जाता है, जो प्रोग्राम को समाप्त करता है) ।

प्रत्येक कमांड में एक ही शब्दार्थ होता है जैसा कि आप संकेतन से अपेक्षा करेंगे, जो कि अधिकांश व्यावहारिक प्रोग्रामिंग भाषाओं द्वारा उपयोग किए जाने वाले से अलग नहीं है: कमांड में मिले दूसरे और तीसरे चर के मान एक अंकगणितीय ऑपरेशन (जोड़ / घटाना) लिया जाता है। (कमांड के चार रूपों के लिए क्रमशः गुणा / विभाजित करें) उन पर लागू किया जाता है, और परिणामी मान को पहले चर में संग्रहीत किया जाता है। यहां डिवीजन पूर्णांक डिवीजन है, 0 की ओर गोल है।

कार्यक्रम से बाहर निकलने के अलावा किसी भी प्रकार का कोई नियंत्रण प्रवाह नहीं है; कमांड हमेशा क्रम में चक्र करते हैं, जब तक कि कोई विभाजन शून्य (यदि कोई हो) होता है और कार्यक्रम समाप्त होता है। विशेष रूप से, चर को सीधे पढ़ने का कोई तरीका नहीं है, केवल उन्हें गणना के स्रोत के रूप में उपयोग करने के लिए जिनके परिणाम अन्य चर को दिए गए मानों को प्रभावित करते हैं।


क्या आप जांच सकते हैं कि मेरा जवाब कुछ याद नहीं है?
user202729

@ user202729: (यहां टिप्पणी करते हुए कि मेरे पास वहां टिप्पणी करने के लिए कोई प्रतिनिधि नहीं है) आप "फ्लिप" से बाहर "झूठ" और "सच हो तो एक चाल" का अनुकरण नहीं कर सकते क्योंकि आप फ्लिप को पूर्ववत नहीं कर सकते तुम्हारे जाने के बाद। तो आपको इसे संभालने के लिए किसी अन्य तरीके की आवश्यकता होगी (उदाहरण के लिए एक तरह से इनवर्स टेस्ट, जो कठिन नहीं होना चाहिए)। विशेष रूप से, हालांकि, यह ठहराव व्यवहार के संदर्भ में एक ट्यूरिंग-पूर्णता प्रमाण है, लेकिन प्रश्न में परिभाषा आपको I / O करने में सक्षम होने की आवश्यकता है, इसलिए आपको यह साबित करने की आवश्यकता है कि आप ऐसा कर सकते हैं।
अनीस ५२३

मुझे उम्मीद है कि I / O हिस्सा (अब) ठीक है। अन्य मुद्दे के रूप में, मुझे एहसास है कि आंतरिक यदि आवश्यक भी नहीं हैं, तो मध्यवर्ती राज्य सभी समस्या को हल करते हैं (हालांकि मुझे यकीन नहीं है कि यह कैसे शब्द है)
user202729

@ user202729: यह अभी भी पूरी तरह से सही नहीं है (उदाहरण के लिए प्रश्न आपको नकारात्मक संख्याओं को आउटपुट करने में सक्षम होने की आवश्यकता है, और आपको इसका उद्देश्य भी बदलना होगा iताकि राज्य संख्या - जो हमेशा "रुक" जाएगी - नहीं होगी आउटपुट का हिस्सा हो), लेकिन यह काफी करीब है कि मैं इसे सुरक्षित रूप से चिह्नित नहीं करने जा रहा हूं, क्योंकि आपको स्पष्ट रूप से पर्याप्त समय और नियमों के पर्याप्त स्पष्टीकरण के साथ एक पूर्ण दरार मिलेगी। मैं इस चुनौती को तकनीकी तौर पर नहीं जीतना चाहता।
अनीस 2323

यह प्रतिबंधों के बहुत करीब है जो de.ioccc.org/years-spoiler.html#1992_buzzard.1 का उपयोग करता है। यह कार्यान्वयन निश्चित आकार के पूर्णांक का उपयोग करता है और इसलिए ट्यूरिंग-पूर्ण नहीं है, और यह एक आपके पास चर की संख्या में गंभीरता से प्रतिबंधित है, लेकिन मुझे लगता है कि सबूत फिर भी समान है।
b_jonas
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.