क्या निम्नलिखित चीजों को जानने के लिए कोई एल्गोरिदम है?दोहराव decimals का पता लगाने के लिए एल्गोरिदम?
- यदि विभाजन का परिणाम दोहराना दशमलव (बाइनरी में) है।
- यदि यह दोहराता है, तो किस अंक (2 की शक्ति के रूप में प्रतिनिधित्व किया जाता है) पुनरावृत्ति शुरू होता है?
- कौन से अंक दोहराते हैं?
कुछ उदाहरण:
1/2 = 1/10 = 0.1 // 1 = false, 2 = N/A, 3 = N/A, 4 = N/A
1/3 = 1/11 = 0.010101... // 1 = true, 2 = -2, 3 = 10
2/3 = 10/11 = 0.101010... // 1 = true, 2 = -1, 3 = 10
4/3 = 100/11 = 1.010101... // 1 = true, 2 = 0, 3 = 10
1/5 = 1/101 = 0.001100110011... // 1 = true, 2 = -3, 3 = 1100
वहाँ यह करने के लिए कोई तरीका है? क्षमता एक बड़ी चिंता है। कोड पर एल्गोरिदम का विवरण पसंद किया जाएगा, लेकिन मैं जो जवाब प्राप्त कर सकता हूं उसे ले जाऊंगा।
यह भी ध्यान देने योग्य है कि आधार एक बड़ा सौदा नहीं है; मैं एल्गोरिदम को बाइनरी में बदल सकता हूं (या यदि यह है, तो आसानी से char
एस का उपयोग करने के लिए आधार 256 कहें, मैं बस इसका उपयोग कर सकता हूं)। मैं यह इसलिए कहता हूं क्योंकि यदि आप समझा रहे हैं तो आधार 10 में व्याख्या करना आपके लिए आसान हो सकता है :)।
परिणाम प्राप्त करने के लिए आपने और अधिक स्थितियों का उपयोग किया है? "01", "01", "10" और "0011" दोहराए गए अंक क्यों नहीं हैं? – Guffa
@ गुफा मेरा तर्क 1 सबसे पहले रखना था क्योंकि प्रमुख शून्य [महत्वपूर्ण] [1] नहीं हैं, जबकि शून्य शून्य हैं। यदि संख्या कुछ थी, "111.010101 ...", दोहराव संख्या "01" होगी क्योंकि उस मामले में पहला 0 * महत्वपूर्ण * महत्वपूर्ण है। [1]: http: //en.wikipedia.org/wiki/Significant_digits – Imagist
@ गुफा (जारी) हालांकि यह मेरे लिए महत्वपूर्ण नहीं है। अगर आपने मुझे बताया कि "01", "01", "01" और "0011" लौटने के तरीके से ऐसा कैसे किया जाए तो मैं खुश रहूंगा। :) – Imagist