यदि संख्या 3 से अधिक है, तो एल्गोरिथ्म कंप्यूटिंग


13

मानसिक पथरी होने पर कोई भी कर सकता है:

  • पूर्णांक k को देखते हुए, सभी अंकों (आधार 10 में) को जोड़ दें, और यदि परिणाम 3 का गुणक है, तो k 3 का गुणक है।

क्या आप समान रूप से काम करने वाले किसी भी एल्गोरिथ्म के बारे में जानते हैं लेकिन बाइनरी नंबर डिजिट्स (बिट्स) पर काम कर रहे हैं?

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

  • तब मैंने आधार 2 में यूक्लिडियन विभाजन के बारे में सोचा है ...

हालांकि मुझे आश्चर्य है कि अन्य साधन, एल्गोरिदम हैं।


जवाबों:


22

निम्नलिखित दो टिप्पणियों पर विचार करें (पाठक के लिए एक अभ्यास के रूप में छोड़ दिया गया):

  1. दो की भी शक्तियाँ 1 मोडुलो 3 हैं।
  2. दो की विषम शक्तियाँ -1 मोडुलो 3 हैं।

हम यह निष्कर्ष निकालते हैं कि एक संख्या (बाइनरी में) तीन से विभाज्य है यदि और केवल अगर बिट्स का योग सम पदों में बिट्स का योग विषम पदों 3 में बराबर होता है।


7
यह दशमलव में 11 से विभाज्य होने के नियम जैसा है।
युवल फिल्मस

1
@ युवलफिल्मस: सटीक। मैं पाठक के लिए एक और अभ्यास जोड़ने जा रहा था, लेकिन इसके खिलाफ फैसला किया।
19

3
ठीक है, कैसे पता करें कि हेक्साडेसिमल में लिखी गई संख्या 17 (दशमलव) से विभाज्य है? या 15 (दशमलव) उस बात के लिए? ;-)
वॉनब्रांड

33

नौकरी के लिए एक परिमित राज्य ऑटोमेटन के बारे में क्या?

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

बेशक जादू सिर्फ गणना सापेक्ष 3. प्रतीक जोड़ना है के पीछे स्ट्रिंग का मतलब तार का "बाइनरी मूल्य" से चला जाता है के लिए के लिए के लिए । नतीजतन राज्य से और प्रतीक हम राज्य में ले जाने के , के लिए और । नोट एक स्ट्रिंग है, व्हर्सा इसका मूल्य बाइनरी स्ट्रिंग के रूप में है।axval(x)x2val(x)+axapa2p+amod3p{0,1,2}a{0,1}x{0,1}val(x)N


1
मुझे यह विचार पसंद है, चलो 9 के साथ प्रयास करें। मैं बाइनरी में 1001 फ़ीड करता हूं। पहले बिट मुझे State1, फिर State2, फिर State1 फिर वापस State0 पर भेजें। अतः State0 3 से अधिक है। और एल्गोरिथ्म की जटिलता में प्रयुक्त बिट्स की संख्या है, अधिक कुछ नहीं। यह विस्मयकारी है !
स्टीफन रोलैंड

क्या यह अवधारणा लिंक से संबंधित है? मुझे लगता है कि यह अधिक सरल है। geomathry.wordpress.com/2017/02/13/0-1-and-a-new-number

1
@AaqarAhmad हां, संबंधित, सरल नहीं। एक परिमित ऑटोमेटन में बदलाव का उपयोग आपके स्पष्टीकरण की तरह, L2R मूल्यांकन का वर्णन करने के लिए भी किया जा सकता है। संक्रमण , , , , , । यहां हमारे पास तीन राज्य हैं, इसलिए राज्यों के लिए तीन प्रतीक आवश्यक हैं। आपके प्रतीक क्रमशः संख्या modulo के मूल्यांकन हैं, और आपके L2R मूल्यांकन में पहला प्रतीक "राज्य" है। यदि आप चर्चा चाहते हैं, तो साइट पर एक नया प्रश्न शुरू करना बेहतर है! 0¯0=0¯0¯1=1¯1¯0=2¯1¯1=0¯2¯0=1¯2¯1=2¯Θ,1,01,2,0
हेंड्रिक जनवरी

प्रोग्रामिंग के बारे में मत करो। क्या यह बात एक टर्नरी कंप्यूटर में अधिक कुशल होगी?

4

बाइनरी में, संख्या 1, 100, 10000 (= 100 × 100), 1000000 (= 100 × 100 × 100) आदि सभी 11 (तीन) से विभाजित होने के बाद एक ही शेष देते हैं। इसलिए यदि हम एक बाइनरी संख्या को समान लंबाई के भागों में विभाजित करते हैं, तो भागों का योग मूल संख्या के समान शेष देता है।

(संख्या को विभाजित करते समय, हम शुरुआत के लिए आवश्यक के रूप में कई शून्य जोड़ते हैं । उदाहरण के लिए हम 10111 को समूहों में विभाजित करेंगे 01,01,11 या 0001,0111।)

गणितीय रूप से, बस संख्या को दो अंकों के समूहों में विभाजित करें , फिर समूह जोड़ें; और इसे तब तक दोहराएं जब तक कि आपका परिणाम 00 या 11 = मूल संख्या तीन से अधिक न हो जाए; या 01 या 10 = मूल संख्या तीन की एक से अधिक नहीं थी ।

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

(नोट: हम यहां अहस्ताक्षरित पूर्णांक मान रहे हैं। एक हस्ताक्षरित संख्या के साथ, इसे थोड़ा अधिक ध्यान देने की आवश्यकता है। उदाहरण के लिए 129 3 का एक बहु है, लेकिन -127 नहीं है, हालांकि बिट्स 10000001 पूर्व के लिए एक अहस्ताक्षरित बाइट के रूप में है।) एक हस्ताक्षरित बाइट के रूप में उत्तरार्द्ध।)


0

बाइनरी-विशिष्ट नहीं है, जब संदेह में, बार-बार घटाव हमेशा शेष के साथ विभाजन की गणना करने का एक निश्चित तरीका है (और इस प्रकार यदि संख्या 3 की एक बहु है)।


2
बार-बार घटाना एक बुरा विचार है। शेष के साथ विभाजन बहुत तेज है।
युवल फिल्मस

3
शायद वास्तव में सीपीयू में वास्तव में महंगा है, लेकिन यह एक अलग एल्गोरिथ्म है :-) जो -1 के लायक नहीं है :-(
स्टीफन रोलैंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.