कंप्यूटर विज्ञान में विभाजन पर अंकगणितीय संचालन करना। बाइनरी नंबरों का जोड़। किसी संख्या को बाइनरी से दशमलव में बदलना

स्थितीय संख्या प्रणालियों में अंकगणितीय संचालन

आइए अधिक विस्तार से विचार करें अंकगणितीय आपरेशनसबाइनरी सिस्टम में। अंकगणित बायनरी सिस्टमकैलकुस संख्याओं के जोड़, घटाव और गुणा की तालिकाओं के उपयोग पर आधारित है। अंकगणित ऑपरेंड शीर्ष पंक्ति में और तालिकाओं के पहले कॉलम में स्थित होते हैं, और परिणाम कॉलम और पंक्तियों के चौराहे पर होते हैं:

आइए प्रत्येक ऑपरेशन पर विस्तार से विचार करें।

योग।बाइनरी जोड़ तालिका अत्यंत सरल है। केवल एक मामले में, जब जोड़ किया जाता है 1+1, उच्च पद पर स्थानांतरित किया जाता है। ,

घटाव।घटाव संक्रिया करते समय, छोटी संख्या को हमेशा बड़ी संख्या से निरपेक्ष मान में घटाया जाता है और संगत चिन्ह लगाया जाता है। घटाव तालिका में, बार के साथ 1 का अर्थ है उच्च ऑर्डर ऋण।

गुणन।गुणक के अगले अंक से गुणक के क्रमिक गुणन के साथ दशमलव संख्या प्रणाली में उपयोग की जाने वाली सामान्य योजना के अनुसार गुणन तालिका का उपयोग करके गुणन संचालन किया जाता है।

विभाजन।डिवीजन ऑपरेशन दशमलव संख्या प्रणाली में डिवीजन ऑपरेशन एल्गोरिदम के समान एल्गोरिदम के अनुसार किया जाता है।

नोट: 1 के बराबर दो संख्याओं को जोड़ने पर इस अंक में 0 प्राप्त होता है, और 1 को सबसे महत्वपूर्ण अंक में स्थानांतरित कर दिया जाता है।

उदाहरण_21: संख्या 101 (2) और 11 (2) दी गई है। इन संख्याओं का योग ज्ञात कीजिए।

जहां 101 (2) = 5 (10), 11 (2) = 3 (10), 1000 (2) = 8 (10)

जाँच करें: 5+3=8.

0 में से एक को घटाने पर, उच्चतम निकटतम अंक से एक इकाई ली जाती है, जो 0 से भिन्न होती है। साथ ही, उच्चतम अंक में व्याप्त एक इकाई कम से कम महत्वपूर्ण अंक में 2 इकाई और उच्चतम के बीच सभी अंकों में से एक देती है। और सबसे कम।

उदाहरण_22: संख्या 101 (2) और 11 (2) दी गई है। इन संख्याओं के बीच का अंतर ज्ञात कीजिए।

जहाँ 101 (2) =5 (10), 11 (2) =3 (10), 10 (2) =2 (10)

जाँच करें: 5-3 = 2।

गुणन संक्रिया को बार-बार बदलाव और जोड़ में घटाया जाता है।

उदाहरण_23: संख्याएँ 11 (2) और 10 (2) दी गई हैं। इन संख्याओं का गुणनफल ज्ञात कीजिए।

जहां 11 (2) =3 (10) , 10 (2) =2 (10) , 110 (2) =6 (10) ।

जाँच करें: 3*2=6.

अष्टक संख्या प्रणाली में अंकगणितीय संचालन

दो संख्याओं को जोड़ने पर, जिनका योग 8 के बराबर होता है, इस श्रेणी में 0 प्राप्त होता है, और 1 को उच्चतम क्रम में स्थानांतरित किया जाता है।

उदाहरण_24: संख्याएं 165 (8) और 13 (8) दी गई हैं। इन संख्याओं का योग ज्ञात कीजिए।

जहाँ 165 (8) = 117 (10), 13 (8) = 11 (10), 200 (8) = 128 (10) है।

छोटी संख्या में से बड़ी संख्या को घटाने पर, 0 से भिन्न उच्चतम निकटतम अंक से एक इकाई ली जाती है। साथ ही, उच्चतम अंक में व्याप्त एक इकाई कम से कम महत्वपूर्ण अंक में 8 देती है।

उदाहरण_25: संख्या 114 (8) और 15 (8) दी गई है। इन संख्याओं के बीच का अंतर ज्ञात कीजिए।

जहां 114 (8) =76 (10) , 15 (8) =13 (10) , 77 (8) =63 (10) ।

अंकगणितीय संचालन हेक्साडेसिमल सिस्टमगणना

दो संख्याओं को जोड़ने पर, इस श्रेणी में कुल 16, 0 लिखा जाता है, और 1 को उच्चतम क्रम में स्थानांतरित किया जाता है।

उदाहरण_26: नंबर 1बी5 (16) और 53 (16) दिए गए हैं। इन संख्याओं का योग ज्ञात कीजिए।

जहां 1बी5 (16) = 437 (10), 53 (16) = 83 (10), 208 (16) = 520 (10) है।

छोटी संख्या में से बड़ी संख्या को घटाने पर 0 के अलावा अन्य उच्चतम निकटतम अंक से एक इकाई ली जाती है। साथ ही, उच्चतम अंक में व्याप्त इकाई कम से कम महत्वपूर्ण अंक में 16 देती है।

उदाहरण_27: संख्याएँ 11A (16) और 2C (16) दी गई हैं। इन संख्याओं के बीच का अंतर ज्ञात कीजिए।

जहां 11ए (16) =282 (10), 2सी (16) =44 (10), ईई (16) =238 (10) है।

कंप्यूटर डेटा एन्कोडिंग

कंप्यूटर में डेटा को एक कोड के रूप में दर्शाया जाता है, जिसमें अलग-अलग क्रम में एक और शून्य होते हैं।

कोड- किट प्रतीकजानकारी प्रस्तुत करने के लिए। एन्कोडिंग एक कोड के रूप में जानकारी प्रस्तुत करने की प्रक्रिया है।

संख्या कोड

कंप्यूटर में अंकगणितीय संचालन करते समय, वे उपयोग करते हैं प्रत्यक्ष, उल्टा तथा अतिरिक्त संख्या कोड।

सीधा कोड

सीधाएक द्विआधारी संख्या का कोड (एक चिह्न के साथ एक पूर्ण मूल्य के रूप में प्रतिनिधित्व) बाइनरी संख्या ही है, जिसमें इसके मूल्य का प्रतिनिधित्व करने वाले सभी अंक गणितीय संकेतन के रूप में लिखे जाते हैं, और संख्या का संकेत एक के रूप में लिखा जाता है बाइनरी संख्या।

कंप्यूटर में पूर्णांकों को चिन्ह के साथ या बिना प्रदर्शित किया जा सकता है।

अहस्ताक्षरित पूर्णांक आमतौर पर स्मृति के एक या दो बाइट्स पर कब्जा कर लेते हैं। हस्ताक्षरित पूर्णांकों को संग्रहीत करने के लिए, एक, दो या चार बाइट्स आवंटित किए जाते हैं, जबकि सबसे महत्वपूर्ण (सबसे बाईं ओर) बिट को संख्या के संकेत के तहत आवंटित किया जाता है। यदि संख्या धनात्मक है, तो इस बिट पर 0 लिखा जाता है, यदि ऋणात्मक है, तो 1.

उदाहरण_28:

1 (10) =0 000 0001 (2) , -1 (10) =1 000 0001 (2)


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

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

रिवर्स कोड

रिवर्स कोडएक सकारात्मक संख्या एक प्रत्यक्ष के साथ मेल खाती है, और जब एक ऋणात्मक संख्या लिखते हैं, तो इसके सभी अंक, संख्या के संकेत का प्रतिनिधित्व करने वाले अंक को छोड़कर, विपरीत लोगों द्वारा प्रतिस्थापित किए जाते हैं (0 को 1 से प्रतिस्थापित किया जाता है, और 1 को 0 से बदल दिया जाता है। )

उदाहरण_29:

उदाहरण_30:

रिवर्स कोड से ऋणात्मक संख्या के प्रत्यक्ष कोड को पुनर्स्थापित करने के लिए, संख्या के चिह्न का प्रतिनिधित्व करने वाले अंक को छोड़कर, सभी अंकों को विपरीत अंक से बदला जाना चाहिए।

अतिरिक्त कोड

अतिरिक्त कोडएक धनात्मक संख्या का प्रत्यक्ष एक के साथ मेल खाता है, और एक ऋणात्मक संख्या का कोड प्रतिलोम कोड में 1 जोड़कर बनता है।

उदाहरण_31:

उदाहरण_32:

उदाहरण_33:

एक पूर्णांक -32 (10) के लिए एक अतिरिक्त कोड लिखें।

1. संख्या 32 (10) को बाइनरी नंबर सिस्टम में बदलने के बाद, हम प्राप्त करते हैं:

32 (10) =100000 (2) .

2. धनात्मक संख्या 32 (10) का सीधा कोड 0010 0000 है।

3. एक ऋणात्मक संख्या -32 (10) के लिए, सीधा कोड 1010 0000 है।

4. संख्या -32 (10) का उल्टा कोड 1101 1111 है।

5. संख्या -32 (10) का अतिरिक्त कोड 1110 0000 है।

उदाहरण_34:

संख्या का अतिरिक्त कोड 0011 1011 है। दशमलव संकेतन में संख्या का मान ज्ञात कीजिए।

1. संख्या का पहला (चिह्न) अंक 0 011 1011 0 है, इसलिए संख्या धनात्मक है।

2. एक धनात्मक संख्या के लिए, अतिरिक्त, प्रतिलोम और प्रत्यक्ष कोड समान होते हैं।

3. बाइनरी सिस्टम में नंबर डायरेक्ट कोड के रिकॉर्ड से प्राप्त होता है - 111011 (2) (हम उच्चतम अंकों से शून्य को हटाते हैं)।

4. संख्या 111011 (2) को स्थानांतरित करने के बाद दशमलव प्रणालीगणना 59 (10) है।

उदाहरण_35:

संख्या का अतिरिक्त कोड 1011 1011 है। दशमलव संकेतन में संख्या का मान ज्ञात कीजिए।

1. किसी संख्या का चिह्न अंक 1 011 1011 1 है, इसलिए संख्या ऋणात्मक है।

2. संख्या का उल्टा कोड निर्धारित करने के लिए, अतिरिक्त कोड में से एक घटाएं। उल्टा कोड है 1 011 1010.

3. संख्या के सभी बाइनरी अंकों को विपरीत अंकों (1 के लिए 0, 1 के लिए 0) के साथ बदलकर रिवर्स से सीधा कोड प्राप्त किया जाता है। संख्या का सीधा कोड है 1 100 0101 (साइन बिट में हम 1 लिखते हैं)।

4. बाइनरी सिस्टम में नंबर डायरेक्ट कोड के रिकॉर्ड से प्राप्त होता है - -100 0101 (2)।

4. दशमलव में बदलने के बाद संख्या -1000101 (2) -69 (10) के बराबर है।


इसी तरह की जानकारी।


उद्देश्य:

बाइनरी सिस्टम में अंकगणितीय संचालन करने में सक्षम हो।

व्यायाम

व्यायाम करें 1. अभ्यास करने से पहले, विषय पर सामग्री का अध्ययन करें उपधारा 2.1.4 . से.

अभ्यास 1

कार्य निरूपण

संख्या 1001 (2) और 101 (2) दी गई है। इन संख्याओं का योग ज्ञात कीजिए।

समाधान

1001 (2)

+ 101 (2)

1. तालिका 2 के अनुसार दो इकाइयों को जोड़ने पर, हमें 10 प्राप्त होता है। कम से कम महत्वपूर्ण बिट में, हम लिखते हैं 0 , और 1 को एक स्थिति से बाईं ओर ले जाया जाता है।

100 1 (2)

+ 10 1 (2)

2. दो शून्य जोड़ने पर, हमें 0 मिलता है। 1 के बारे में मत भूलना, जो कम से कम महत्वपूर्ण बिट से स्थानांतरित किया गया था। 0 और 1 को जोड़ने पर हमें प्राप्त होता है 1 .

10 01 (2)

+ 1 01 (2)

3. 0 और 1 को जोड़ने पर हमें प्राप्त होता है 1 .

1 001 (2)

+ 101 (2)

1 110 (2)

4. केवल वरिष्ठ वर्ग में 1 .

5 आइए जाँच करें।

1001 (2) =9 (10) , 101 (2) =5 (10) , 1110 (2) =14 (10)

व्यायाम 2

कार्य निरूपण

संख्या 1101 (2) और 11 (2) दी गई है। इन संख्याओं के बीच का अंतर ज्ञात कीजिए।

समाधान

0 में से एक को घटाने पर, उच्चतम निकटतम अंक से एक इकाई ली जाती है, जो 0 से भिन्न होती है। साथ ही, उच्चतम अंक में व्याप्त एक इकाई कम से कम महत्वपूर्ण अंक में 2 इकाई और उच्चतम के बीच सभी अंकों में से एक देती है। और सबसे कम।

इंतिहान।

1101 2 =2 3 +2 2 +1=13 10

1010 2 =2 3 +2=10 10

व्यायाम 3

कार्य निरूपण

संख्या 111 (2) और 101 (2) दी गई है। इन संख्याओं का गुणनफल ज्ञात कीजिए।

गुणन संक्रिया को बार-बार बदलाव और जोड़ में घटाया जाता है

उदाहरण

इंतिहान।

111 2 =2 2 +2+1=7 10

101 2 =2 2 +1=5 10

100011 2 =2 5 +2+1=32+3=35 10 =7*5.

तार्किक सूत्रों के लिए सत्य सारणी बनाना

उद्देश्य

दिए गए तार्किक सूत्रों के लिए सत्य सारणी बनाने में सक्षम हो।

व्यायाम

व्यायाम करें 1. अभ्यास करने से पहले, विषय पर सामग्री का अध्ययन करें उपखंडों से 2.1.4, 2.1.5, 2.1.6, 2.1.7 .

अभ्यास 1

कार्य निरूपण



एक तार्किक सूत्र दिया गया है . दिए गए सूत्र के लिए एक सत्य सारणी की रचना कीजिए।

समाधान:

1. हम संचालन के निष्पादन को प्राथमिकता देते हैं:

1) - कथन के निषेधन की क्रिया पर. ऑपरेशन का परिणाम एक चर को सौंपा गया है।

2) कथनों के तार्किक गुणन (संयोजन) का संचालन है और . ऑपरेशन का परिणाम एक चर को सौंपा गया है।

3) बयानों के तार्किक परिणाम (निहितार्थ) का संचालन है और। संचालन का परिणाम चर को सौंपा गया है।

2. हम पांच कॉलम वाली एक टेबल बनाते हैं:

प्रारंभिक आंकड़े एक्स यू एफ
बी

पर प्रारंभिक आंकड़ेतालिकाएँ कथनों के नाम लिखती हैं लेकिनतथा पर. शेष तीन स्तंभों में हम उन चरों के नाम लिखते हैं जिनके लिए हम परिणाम निर्दिष्ट करते हैं तार्किक संचालन.

3. प्रारंभिक आंकड़ेतालिकाएँ कथनों के अर्थों के संभावित संयोजनों से भरी हुई हैं लेकिनतथा पर(पहला विकल्प तब होता है जब दोनों कथन सत्य होते हैं; दूसरा और तीसरा विकल्प तब होता है जब एक कथन सत्य होता है और दूसरा असत्य होता है; चौथा विकल्प तब होता है जब दोनों कथन असत्य हों)।

5. कॉलम के मानों को नाम से भरें यू. ऐसा करने के लिए, मुख्य तार्किक संचालन की सत्य तालिका के अनुसार, हम संयोजन ऑपरेशन का मूल्य निर्धारित करते हैं यू=0 (जब लेकिन=1 और एक्स=0), आदि।

एल्गोरिथम और प्रोग्रामिंग की मूल बातें

उद्देश्य

मौखिक एल्गोरिथम प्रदर्शन करने में सक्षम हो।

सरल समस्याओं को फ़्लोचार्ट के रूप में हल करने के लिए एल्गोरिदम प्रस्तुत करना सीखें और उनके आधार पर प्रोग्राम लिखें।

टिप्पणी

छात्र को कार्य को दो तरीकों से पूरा करना होगा:

एक मौखिक एल्गोरिथम चलाएँ और उसका परिणाम रिकॉर्ड करें।

मौखिक एल्गोरिथम को फ़्लोचार्ट और प्रोग्राम के रूप में प्रस्तुत करें। कार्यक्रम दर्ज करें, इसे चलाएं, परिणाम प्राप्त करें।

व्यायाम

अभ्यास को पूरा करें 1. अभ्यास करने से पहले, विषय पर सामग्री का अध्ययन करें।

अभ्यास 1

रैखिक एल्गोरिदम

कार्य निरूपण

2) एक ब्लॉक आरेख बनाएं और दिए गए एल्गोरिथम के अनुसार एक प्रोग्राम लिखें।

शब्द एल्गोरिथम

रैखिक एल्गोरिथ्म के परिणामस्वरूप:

चरों का मान ज्ञात कीजिए: k, n, m।

समाधान:

1) मौखिक एल्गोरिथम क्रमिक रूप से क्रियान्वित किया जाता है।

· मान k = 8 को m =k+2=10 में प्रतिस्थापित किया जाता है।

· मान k = 8, m =10 को n =k+m =18 में प्रतिस्थापित किया जाता है।

· एक नया k = n - 2 * k =18 - 2 * 8 = 2 की गणना की जाती है।

· नया m:=k+n=2+18=20 परिकलित किया जाता है।

रैखिक एल्गोरिथ्म के परिणामस्वरूप, चर के मान समान हैं:

एन = 18, के = 2, एम = 20।

2) कार्य एल्गोरिथम का ब्लॉक आरेख चित्र 19 में दिखाया गया है।

एल्गोरिथ्म का कार्यक्रम चित्र 19 में प्रस्तुत किया गया है।

के, एम, एन: पूर्णांक;

राइटलन ('के दर्ज करें'); (एक संकेत स्क्रीन पर प्रदर्शित होता है - कोष्ठक में पाठ)

रीडलन (के); (कीबोर्ड इनपुट चर k)

राइटलन ('के =', के, 'एन =', एन, 'एम =', एम); (चर k, n, m का आउटपुट)

ऑपरेटरों को स्पष्टीकरण (टिप्पणियां) घुंघराले कोष्ठक में दिए गए हैं।

चित्र 20 में दिखाए गए ब्लॉक आरेख में, चर का मान कीबोर्ड से दर्ज किया गया। इसलिए, कार्यक्रम में, यह ब्लॉक इनपुट ऑपरेटर से मेल खाता है, जो आपको कीबोर्ड से चर के किसी भी मान को दर्ज करने की अनुमति देता है क।

निष्कर्ष

संचालन की गणना के रूप में दिया गया एक रैखिक प्रकार एल्गोरिदम अधिक जटिल हो सकता है। नतीजतन, मौखिक गणना त्रुटि (कार्य 1) ​​की संभावना बढ़ जाती है। यदि हम एल्गोरिथम को फ्लोचार्ट के रूप में प्रस्तुत करते हैं, तो संचालन का क्रम स्पष्ट रूप से दिखाई देता है। एक चर का परिचय देकर एल्गोरिथ्म को जटिल बनाया जा सकता है कीबोर्ड से।

यदि आप चित्र 20 में फ़्लोचार्ट का अनुसरण करते हैं, तो एल्गोरिथम को प्रोग्राम के रूप में लिखना बहुत सरल है।

ब्लॉक 1 शब्द BEGIN (शुरुआत) से मेल खाता है।

ब्लॉक 2 रीडलन (के) इनपुट ऑपरेटर से मेल खाता है।

ब्लॉक 3¸6 को चित्र 20 से कॉपी किया गया है।

ब्लॉक 7 आउटपुट ऑपरेटर राइटलन ('के =', के, 'एन =', एन, 'एम =', एम) से मेल खाता है।

ब्लॉक 8 शब्द END (कार्यक्रम का अंत) से मेल खाता है।

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

यदि आपको चर बदलने पर मूल्यों की तालिका की गणना करने की आवश्यकता है क,तो एक चक्रीय एल्गोरिथ्म चुना जाना चाहिए।

चित्र 20 - रैखिक एल्गोरिथम का ब्लॉक आरेख

व्यायाम 2

ब्रांचिंग एल्गोरिथम

कार्य निरूपण

1) एक मौखिक एल्गोरिथ्म चलाएँ। परिणाम लिखिए।

शब्द एल्गोरिथम

एल्गोरिथ्म का एक टुकड़ा दिया गया है:

यदि W > R, तो R=W+R, अन्यथा W=R-W।

प्रारंभिक मूल्यों के साथ इस एल्गोरिथम निष्पादन के परिणामस्वरूप: W=-7, R=55

स्क्रीन प्रदर्शित होगी: W R

समाधान:

1) प्रारंभिक मानों के लिए: W=-7, R=55, शर्त W > R पूरी नहीं होती है। इस स्थिति में, दूसरी शाखा W=R-W=55+7=62 निष्पादित की जाती है।

एल्गोरिथ्म के परिणामस्वरूप, चर के मान समान हैं: W=62, R=55.

2) मौखिक एल्गोरिथम का ब्लॉक आरेख चित्र 21 में दिखाया गया है।

चित्र 21 में, एक नया ब्लॉक 3 प्रकट हुआ है, जिसमें स्थिति की जाँच की गई है। कंडीशन चेक ब्लॉक एल्गोरिथम में दो दिशाओं में एक शाखा बनाता है।

ब्लॉक आरेख से पता चलता है कि, w>r की स्थिति के आधार पर, एल्गोरिथम की शाखाओं में से एक को निष्पादित किया जाता है। फिर गणना का परिणाम प्रदर्शित होता है।


चित्र 21 - ब्रांचिंग एल्गोरिथम

ब्लॉक 2 इनपुट ऑपरेटर रीडलन (डब्ल्यू, आर) से मेल खाता है।

खंड 3 शर्त कथन से मेल खाता है यदि w > r तो w:= w + r अन्य r:=r-w.

ब्लॉक 4 असाइनमेंट ऑपरेटर w = w+r से मेल खाता है।

ब्लॉक 5 असाइनमेंट ऑपरेटर r=r-w से मेल खाता है।

ब्लॉक 6 आउटपुट स्टेटमेंट राइटलन ('w =', w, 'r =', r) से मेल खाता है।

ब्रांचिंग एल्गोरिथम का कार्यक्रम चित्र 21 में दिखाया गया है।

राइटलन ('टाइप डब्ल्यू, आर'); (एक संकेत स्क्रीन पर प्रदर्शित होता है - कोष्ठक में पाठ)

रीडलन (डब्ल्यू, आर); (w, r वेरिएबल्स का कीबोर्ड इनपुट)

अगर डब्ल्यू> आर तो

राइटलन ('डब्ल्यू =', डब्ल्यू, 'आर =', आर); (परिणाम आउटपुट)

व्यायाम 3

एल्गोरिदम। साइकिल

कार्य निरूपण

1) एक मौखिक एल्गोरिथ्म चलाएँ। परिणाम लिखिए।

2) एक ब्लॉक आरेख बनाएं और एल्गोरिथम के अनुसार एक प्रोग्राम लिखें।

उदाहरण 1

एक चक्र काउंटर के साथ एक चक्रीय एल्गोरिथम मौखिक विवरण के रूप में दिया गया है।

1 से 3 . तक i के लिए लूप प्रारंभ

चक्र का अंत; निष्कर्ष डी, एस।

समाधान:

1) एल्गोरिथ्म काउंटर की सीमा निर्दिष्ट करता है मैं,जहां यह देखा जा सकता है कि तीन चक्रों का प्रदर्शन किया जाना चाहिए।

· पहले चक्र के निष्पादन के बाद, चर के मान d=2, s=2 के बराबर होते हैं।

· प्राप्त मूल्यों को दूसरे चक्र में प्रतिस्थापित किया जाता है।

· दूसरे चक्र के निष्पादन के बाद, चर के मान d=4, s=6 के बराबर होते हैं।

· दूसरे चक्र में प्राप्त मूल्यों को तीसरे चक्र के निष्पादित होने पर प्रतिस्थापित किया जाता है।

· एल्गोरिथम के निष्पादन के परिणामस्वरूप, चर के मान हैं: d=8, s=14.

2) काउंटर के साथ वर्बल लूप एल्गोरिथम का ब्लॉक आरेख चित्र 22 में दिखाया गया है।

चित्र 22 - एक काउंटर के साथ एक चक्र के लिए एल्गोरिथ्म

ब्लॉक 1 सेवा शब्द BEGIN से मेल खाता है।

ब्लॉक 2 रीडल (एन) इनपुट स्टेटमेंट से मेल खाता है।

· ब्लॉक 3 असाइनमेंट ऑपरेटरों से मेल खाता है: = 0; घ: = 1;

· ब्लॉक 4, i:=1 से n do के लिए काउंटर के साथ साइकिल ऑपरेटर से मेल खाता है।

ब्लॉक 5 असाइनमेंट ऑपरेटरों से मेल खाता है d: =2 * d; एस: = एस + डी;

ब्लॉक 6 आउटपुट स्टेटमेंट राइटलन ('डी =', डी, 'एस =', एस) से मेल खाता है;

ब्लॉक 7 सेवा शब्द END से मेल खाता है।

एक काउंटर के साथ चक्र एल्गोरिथ्म का कार्यक्रम, चित्र 22 में दिखाया गया है।

एस, डी, आई, एन: पूर्णांक;

writeln ('चक्रों की संख्या दर्ज करें-एन');

i:=1 से n do के लिए (पैरामीटर के साथ लूप स्टेटमेंट)

राइटलन ('डी =', डी, 'एस =', एस);

समाप्त; (लूप स्टेटमेंट का अंत)

उदाहरण 2

एक पूर्व शर्त के साथ एक चक्रीय एल्गोरिथ्म एक मौखिक विवरण के रूप में दिया गया है।

चर के प्रारंभिक मान निर्धारित हैं:

चक्र की शुरुआत। जबकि y>x निष्पादित करें:

चक्र का अंत;

चक्रों की संख्या निर्धारित करें और परिवर्तनीय मान आपलूप छोड़ने के बाद।

समाधान

1) लूप को तब तक निष्पादित किया जाता है जब तक कि y>x की स्थिति संतुष्ट न हो जाए।

चूंकि y=5, x=1, तो शर्त y>x संतुष्ट है और मान आपसूत्र y = y - x द्वारा गणना की जाती है।

· पहले चक्र y=4 के निष्पादन के परिणामस्वरूप।

· दूसरे चक्र में शर्त y>x पूरी होती है, दूसरे चक्र के बाद मान y=3 होता है।

· तीसरे चक्र में शर्त y>x पूरी होती है, तीसरे चक्र की समाप्ति के बाद मान y=2 होता है।

· चौथे चक्र में, शर्त y>x पूरी होती है, चक्र के निष्पादन के बाद मान y=1.

· मानों के लिए y=1, x=1 शर्त y>x पूरी नहीं हुई है, लूप निष्पादित नहीं किया जाएगा। इसलिए, लूप समाप्त हो जाएगा और चार लूप निष्पादित किए जाएंगे।

लूप से बाहर निकलने पर, चर के मान बराबर होंगे: k=4, y=1, x=1.

2) एक पूर्व शर्त के साथ लूप एल्गोरिथ्म का कार्यक्रम, चित्र 12 में दिखाया गया है।

के, एक्स, वाई: पूर्णांक;

राइटलन ('एक्स, वाई दर्ज करें');

जबकि y>x करते हैं (पूर्व शर्त के साथ लूप स्टेटमेंट)

राइटलन ('के=', के , ' y= ' , y);

समाप्त; (पूर्व शर्त के साथ लूप स्टेटमेंट का अंत)

प्रोग्राम में, लूप निष्पादित होने से पहले k का प्रारंभिक मान सेट नहीं किया जाता है। यह डिफ़ॉल्ट रूप से शून्य हो जाता है।

उदाहरण एक पूर्व शर्त के साथ एक लूप स्टेटमेंट का उपयोग करता है, जिसे इस उदाहरण में निष्पादित किया जाता है यदि y>x। लूप में प्रवेश करते समय स्थिति की जाँच की जाती है। लूप के मुख्य भाग में, काउंटर को असाइनमेंट ऑपरेटर k:=k+1 के रूप में निर्दिष्ट किया जाता है, जो पूर्ण किए गए लूपों की संख्या देता है।

उदाहरण3

पोस्टकंडिशन के साथ साइकिल ऑपरेटर का उपयोग करके उदाहरण 2 के चक्रीय एल्गोरिदम को फिर से लिखें। परिणाम वही होगा।

एक पोस्टकंडीशन के साथ लूप एल्गोरिथम का कार्यक्रम, चित्र 13 में दिखाया गया है।

के, एक्स, वाई: पूर्णांक;

राइटलन ('एक्स, वाई,' दर्ज करें);

दोहराना (पोस्टकंडिशन के साथ लूप स्टेटमेंट)

रीड्लन (' के = ', के, ' वाई = ', वाई);

जब तक आप<=x; {конец оператора цикла с постусловием }

व्यायाम 4

एक आयामी सरणी

उदाहरण 1

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

समाधान

1) खोज एल्गोरिथ्म: चर अधिकतम दर्ज करें, जिसमें हम सरणी का पहला तत्व लिखते हैं। फिर लूप में हम प्रत्येक बाद के तत्व की तुलना मैक्स से करते हैं। यदि वर्तमान तत्व में संग्रहीत संख्या मैक्स में संग्रहीत संख्या से अधिक है, तो वर्तमान तत्व की संख्या मैक्स को लिखी जाती है।

एक आयामी सरणी और उसकी संख्या के अधिकतम तत्व को खोजने का कार्यक्रम:

एक्स: पूर्णांक की सरणी;

के, अधिकतम, एन, आई: पूर्णांक;

Writeln ('सरणी n के तत्वों की संख्या दर्ज करें');

मैं के लिए:=1 से n do

रीडलन (एक्स [i]); (इनपुट सरणी तत्व)

मैं के लिए:=1 से n do

अगर x[i]>अधिकतम तो

राइटलन ('अधिकतम =', अधिकतम, 'के =', के);

एक-आयामी सरणी के अधिकतम तत्व और इसकी संख्या को खोजने के लिए एल्गोरिथ्म का ब्लॉक आरेख चित्र 23 में दिखाया गया है।

ब्लॉक 2 - एक आयामी सरणी के तत्वों की संख्या का इनपुट।

ब्लॉक 3 - चक्र की शुरुआत जिसमें एक आयामी सरणी के तत्वों को दर्ज किया जाएगा।

ब्लॉक 4 - लूप में एक-आयामी सरणी के तत्वों का इनपुट।

ब्लॉक 5 - एक-आयामी सरणी के पहले तत्व का मान अधिकतम तत्व को सौंपा गया है।

ब्लॉक 6 - चक्र की शुरुआत, जिसमें ब्लॉक 7 में एक-आयामी सरणी के अधिकतम तत्व की स्थिति की जाँच की जाती है और ब्लॉक 8 में एक-आयामी सरणी के अधिकतम तत्व का मान और संख्या तय की जाती है।

ब्लॉक 9 एक-आयामी सरणी का अधिकतम तत्व और उसकी संख्या प्रदर्शित करता है।

चित्र 23 - एक-आयामी सरणी और उसकी संख्या के अधिकतम तत्व को खोजने के लिए एल्गोरिदम

2डी सरणियाँ

उदाहरण 2

N पंक्तियों और M स्तंभों के साथ द्वि-आयामी सरणी को देखते हुए, 3-स्तंभ के तत्वों का योग ज्ञात कीजिए।

समाधान

पहचानकर्ता तालिका

3-स्तंभ द्वि-आयामी सरणी के तत्वों का योग ज्ञात करने का कार्यक्रम:

ए: पूर्णांक का सरणी [1..10, 1..10];

एस, आई, जे, एन, एम: पूर्णांक;

writeln ('पंक्तियों की संख्या दर्ज करें - n और कॉलम - m');

i:=l से n do . के लिए

j के लिए:=l से m do

writeln (' सरणी तत्व दर्ज करें a [ ', i ,' , ' , j , ' ]= ');

रीडलन (ए,); (सरणी तत्व इनपुट)

राइटलन (ए); (आउटपुट सरणी तत्व)

मैं के लिए:=1 से n do

एस: = एस + ए [मैं, 3]; (3 कॉलम के तत्वों का योग)

राइटलन ('एस =', एस,);


परीक्षण

पूर्ण कार्य नियंत्रण कार्यविषय के अनुसार:

1. संख्या प्रणाली।

2. तर्क का बीजगणित।

3. एल्गोरिथम और प्रोग्रामिंग।

योग। बाइनरी नंबर सिस्टम में संख्याओं का जोड़ सिंगल-डिजिट बाइनरी नंबर (तालिका 6) की जोड़ तालिका पर आधारित है।

इस तथ्य पर ध्यान देना महत्वपूर्ण है कि दो इकाइयों को जोड़ते समय, उच्चतम अंक में स्थानांतरण किया जाता है। यह तब होता है जब किसी संख्या का मान संख्या प्रणाली के आधार के बराबर या उससे अधिक हो जाता है।

मल्टी-डिजिट बाइनरी नंबरों का जोड़ उपरोक्त जोड़ तालिका के अनुसार किया जाता है, निचले अंकों से उच्च अंकों में संभावित स्थानान्तरण को ध्यान में रखते हुए। एक उदाहरण के रूप में, चलिए एक कॉलम में बाइनरी नंबर जोड़ते हैं:

आइए दशमलव संख्या प्रणाली में जोड़कर गणना की शुद्धता की जांच करें। आइए बाइनरी नंबरों को दशमलव संख्या प्रणाली में बदलें और उन्हें जोड़ें:

घटाव। बाइनरी नंबरों का घटाव सिंगल-डिजिट बाइनरी नंबर (तालिका 7) के घटाव की तालिका पर आधारित है।

छोटी संख्या (0) से बड़ी संख्या (1) घटाने पर, उच्चतम क्रम से ऋण लिया जाता है। तालिका में, ऋण को बार के साथ 1 से दर्शाया गया है।

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

उदाहरण के लिए, आइए बाइनरी नंबर घटाएं:

गुणन। गुणन एकल-अंकीय बाइनरी संख्याओं (तालिका 8) की गुणन तालिका पर आधारित है।

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

घर \ दस्तावेज़ \ कंप्यूटर विज्ञान शिक्षक के लिए

इस साइट से सामग्री का उपयोग करते समय - और बैनर लगाना अनिवार्य है!!!

बाइनरी अंकगणित

हम जिन संख्याओं का उपयोग करने के आदी हैं, उन्हें दशमलव कहा जाता है और हम जिस अंकगणित का उपयोग करते हैं उसे दशमलव भी कहा जाता है। ऐसा इसलिए है क्योंकि प्रत्येक संख्या 10 वर्णों वाले अंकों के समूह से बनी हो सकती है - अंक - "0123456789"।

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

उदाहरण के लिए, संख्या 246 लें। इस प्रविष्टि का अर्थ है कि संख्या में दो सौ, चार दहाई और छह हैं। इसलिए, हम निम्नलिखित समानता लिख ​​सकते हैं:

246 = 200 + 40 + 6 = 2 * 10 2 + 4 * 10 1 + 6 * 10 0

यहां, समान चिह्न समान संख्या लिखने के तीन तरीकों को अलग करते हैं। अब हमारे लिए सबसे दिलचस्प लेखन का तीसरा रूप है: 2 * 10 2 + 4 * 10 1 + 6 * 10 0। यह निम्नानुसार आयोजित किया जाता है:

हमारे पास तीन नंबर हैं। उच्चतम अंक "2" में संख्या 3 है। इसलिए इसे 10 से दूसरी शक्ति से गुणा किया जाता है। अगले अंक "4" में क्रम संख्या 2 है और इसे पहले वाले में 10 से गुणा किया जाता है। यह पहले से ही देखा जा सकता है कि अंकों को अंक की क्रमिक संख्या से एक कम की शक्ति से दस से गुणा किया जाता है। जो कहा गया है उसे समझने के बाद, हम दशमलव संख्या को निरूपित करने के लिए सामान्य सूत्र लिख सकते हैं। मान लीजिए कि N अंकों वाली कोई संख्या है। हम निरूपित करेंगे मैं-वें अंकआई के माध्यम से फिर संख्या को में लिखा जा सकता है निम्नलिखित प्रपत्र: ए एन ए एन -1 ….ए 2 ए 1। यह पहला फॉर्म है, और तीसरा एंट्री फॉर्म इस तरह दिखेगा:

a n a n-1 ….a 2 a 1 = a n * 10 n-1 + a n-1 * 10 n-2 + …. + ए 2 * 10 1 + ए 1 * 10 0

जहां मैं "0123456789" सेट से एक चरित्र है

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

a n a n-1 ….a 2 a 1 = a n * 5 n-1 + a n-1 * 5 n-2 + …. + ए 2 * 5 1 + ए 1 * 5 0

जहां मैं सेट "01234" से एक चरित्र है

सामान्य तौर पर, हम 10 को किसी अन्य संख्या से बदलते हैं और एक पूरी तरह से अलग संख्या प्रणाली और अलग अंकगणित प्राप्त करते हैं। सबसे सरल अंकगणित प्राप्त होता है यदि 10 को 2 से बदल दिया जाता है। परिणामी संख्या प्रणाली को बाइनरी कहा जाता है और इसमें संख्या को निम्नानुसार परिभाषित किया जाता है:

a n a n-1 ….a 2 a 1 = a n * 2 n-1 + a n-1 * 2 n-2 + …. + ए 2 * 2 1 + ए 1 * 2 0

जहां मैं "01" सेट से एक चरित्र है

यह प्रणाली सभी संभव में सबसे सरल है, क्योंकि इसमें कोई भी संख्या केवल दो अंकों 0 और 1 से बनती है। यह स्पष्ट है कि कहीं भी सरल नहीं है। बाइनरी नंबरों के उदाहरण: 10, 111, 101।

बहुत महत्वपूर्ण प्रश्न। क्या एक बाइनरी संख्या को दशमलव संख्या के रूप में दर्शाया जा सकता है और इसके विपरीत, क्या एक दशमलव संख्या को बाइनरी संख्या के रूप में दर्शाया जा सकता है।

दशमलव के लिए द्विआधारी। यह बहुत सरल है। इस तरह के अनुवाद की विधि हमें संख्या लिखने का तरीका देती है। उदाहरण के लिए, निम्नलिखित बाइनरी संख्या 1011 लें। आइए इसे दो की शक्तियों में विस्तारित करें। हमें निम्नलिखित मिलता है:

1011 = 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0

हम सभी रिकॉर्ड की गई क्रियाएं करते हैं और प्राप्त करते हैं:

1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 = 8 + 0+ 2 + 1 = 11. इस प्रकार, हम पाते हैं कि 1011 (बाइनरी) = 11 (दशमलव)। आप तुरंत बाइनरी सिस्टम की थोड़ी सी असुविधा देख सकते हैं। वही संख्या, जो दशमलव प्रणाली में, बाइनरी सिस्टम में एक वर्ण के साथ लिखी जाती है, इसकी रिकॉर्डिंग के लिए चार वर्णों की आवश्यकता होती है। लेकिन यह सादगी की कीमत है (मुफ्त में कुछ नहीं होता)। लेकिन बाइनरी सिस्टम अंकगणितीय संक्रियाओं में बहुत बड़ा लाभ देता है। और फिर हम इसे देखेंगे।

निम्नलिखित बाइनरी संख्याओं को दशमलव संख्या के रूप में व्यक्त करें।

ए) 10010 बी) 11101 सी) 1010 सी) 1110 डी) 100011 ई) 1100111 एफ) 1001110

बाइनरी नंबरों का जोड़।

एक कॉलम द्वारा जोड़ने की विधि सामान्य रूप से दशमलव संख्या के समान ही होती है। यही है, जोड़ को थोड़ा-थोड़ा करके किया जाता है, जो कम से कम महत्वपूर्ण अंक से शुरू होता है। यदि दो अंकों के योग से योग नौ से अधिक हो जाता है, तो संख्या = SUM-10 लिखा जाता है, और पूरे भाग (SUM / 10) को उच्चतम अंक में जोड़ा जाता है। (एक कॉलम में कुछ संख्याएँ जोड़ें, याद रखें कि यह कैसे किया जाता है।) तो यह एक द्विआधारी संख्या के साथ है। सबसे कम अंक से शुरू करते हुए, थोड़ा-थोड़ा करके जोड़ें। यदि यह 1 से अधिक निकलता है, तो 1 लिखा जाता है और 1 को सबसे महत्वपूर्ण अंक में जोड़ा जाता है (वे कहते हैं "यह पागल है")।

आइए एक उदाहरण चलाते हैं: 10011 + 10001।

पहला रैंक: 1+1 = 2. हम 0 लिखते हैं और 1 दिमाग में आया।

दूसरी रैंक: 1+0+1 (स्मृत इकाई) =2। हम 0 लिखते हैं और 1 दिमाग में चला जाता है।

तीसरी रैंक: 0+0+1(याद की गई इकाई) = 1. लिखो 1.

चौथी रैंक 0+0=0. हम 0 लिखते हैं।

पांचवी रैंक 1+1=2. हम 0 लिखते हैं और छठे बिट में 1 जोड़ते हैं।

आइए तीनों संख्याओं को दशमलव प्रणाली में बदलें और जोड़ की शुद्धता की जाँच करें।

10011 = 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16 + 2 + 1 =19

10001 = 1*2 4 + 0*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 16 + 1 = 17

100100 = 1*2 5 + 0*2 4 + 0*2 3 + 1*2 2 + 0*2 1 + 0*2 0 =32+4=36

17 + 19 = 36 सही समानता

एक स्वतंत्र समाधान के उदाहरण:

ए) 11001 +101 =

बी) 11001 +11001 =

सी) 1001 + 111 =

ई) 10011 + 101 =

च) 11011 + 1111 =

ई) 11111 + 10011 =

दशमलव को बाइनरी में कैसे बदलें। अगला ऑपरेशन घटाव है। लेकिन हम इस ऑपरेशन से थोड़ी देर बाद निपटेंगे, और अब हम एक दशमलव संख्या को बाइनरी में बदलने की एक विधि पर विचार करेंगे।

दशमलव संख्या को बाइनरी में बदलने के लिए, इसे दो की शक्तियों में विस्तारित किया जाना चाहिए। लेकिन अगर दहाई की शक्तियों में विस्तार तुरंत प्राप्त हो जाता है, तो दो की शक्तियों में विस्तार कैसे किया जाए, इसके लिए थोड़ा विचार करने की आवश्यकता है। सबसे पहले, आइए देखें कि चयन विधि द्वारा इसे कैसे किया जाए। आइए दशमलव संख्या 12 लेते हैं।

पहला कदम। 2 2 \u003d 4, यह पर्याप्त नहीं है। यह भी छोटा है और 2 3 \u003d 8, और 2 4 \u003d 16 पहले से ही बहुत है। तो चलिए 2 3 =8 छोड़ते हैं। 12 - 8 = 4। अब आपको 4 को दो के घात के रूप में निरूपित करने की आवश्यकता है।

दूसरा चरण। 4 = 2 2।

तब हमारी संख्या 12 = 2 3 + 2 2। उच्चतम अंक में संख्या 4 है, उच्चतम डिग्री = 3, इसलिए, दो 1 और 0 की शक्तियों के साथ शब्द होना चाहिए। लेकिन हमें उनकी आवश्यकता नहीं है, इसलिए अनावश्यक डिग्री से छुटकारा पाने के लिए, और आवश्यक छोड़ दें वाले, हम संख्या को इस प्रकार लिखते हैं: 1 * 2 3 + 1 * 2 2 +0*2 1 + 0*2 0 = 1100 - यह संख्या 12 का द्विआधारी प्रतिनिधित्व है। यह देखना आसान है कि प्रत्येक अगली शक्ति दो की सबसे बड़ी शक्ति है, जो कि विस्तारित की जाने वाली संख्या से कम है। विधि को ठीक करने के लिए, आइए एक और उदाहरण देखें। संख्या 23.

चरण 1. दो की निकटतम घात 2 4 = 16 है। 23 -16 = 7।

चरण 2. दो की निकटतम घात 2 2 = 4 है। 7 - 4 = 3

चरण 3. दो की निकटतम घात 2 1 = 2 है। 3 - 2 = 1

चरण 4. दो की निकटतम घात 2 0 = 1 1 - 1 = 0

हमें निम्नलिखित अपघटन मिलता है: 1*2 4 + 0*2 3 +1*2 2 +1*2 1 +1*2 0

और हमारा वांछित बाइनरी नंबर 10111 . है

ऊपर दी गई विधि पहले से निर्धारित समस्या को अच्छी तरह से हल करती है, लेकिन एक ऐसी विधि है जो बहुत बेहतर तरीके से एल्गोरिथम है। इस विधि के लिए एल्गोरिथ्म नीचे लिखा गया है:

जब तक NUMBER शून्य से अधिक है तब तक करें

अगला अंक \u003d NUMBER को 2 . से विभाजित करने पर शेष

NUMBER = NUMBER का पूर्णांक भाग 2 . से विभाजित

जब यह एल्गोरिथम अपना काम पूरा कर लेता है, तो परिकलित नियमित अंकों का क्रम एक बाइनरी संख्या का प्रतिनिधित्व करेगा। उदाहरण के लिए, आइए 19 नंबर के साथ काम करें।

एल्गोरिथम प्रारंभ NUMBER = 19

अगला अंक = 1

अगला अंक = 1

अगला अंक = 0

अगला अंक = 0

अगला अंक = 1

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

दशमलव को बाइनरी में दो तरह से बदलें

ए) 14 बी) 29 सी) 134 डी) 158 एफ) 1190 ग्राम) 2019

भिन्नात्मक भाग को दशमलव में कैसे बदलें।

यह ज्ञात है कि किसी भी परिमेय संख्या को दशमलव और साधारण भिन्न के रूप में दर्शाया जा सकता है। एक साधारण भिन्न, जो कि A/B के रूप का भिन्न है, नियमित और अनुचित हो सकता है। एक भिन्न को उचित कहा जाता है यदि A<В и неправильной если А>पर।

यदि एक परिमेय संख्या को एक अनुचित भिन्न द्वारा दर्शाया जाता है, और उसी समय भिन्न के अंश को हर द्वारा पूरी तरह से विभाजित किया जाता है, तो यह परिमेय संख्या एक पूर्णांक है, अन्य सभी मामलों में एक भिन्नात्मक भाग दिखाई देता है। भिन्नात्मक भाग अक्सर एक बहुत लंबी संख्या और यहां तक ​​कि अनंत (एक अनंत आवधिक अंश, उदाहरण के लिए, 20/6) होता है, इसलिए भिन्नात्मक भाग के मामले में, हमारे पास केवल एक प्रतिनिधित्व को दूसरे में अनुवाद करने का कार्य नहीं है, बल्कि अनुवाद करना है एक निश्चित सटीकता के साथ।

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

और अब आइए अनुवाद नियम प्राप्त करने का प्रयास करें, और पहले उदाहरण 5,401 . पर विचार करें

समाधान:

हम पहले से ज्ञात नियमों के अनुसार पूर्णांक भाग प्राप्त करेंगे, और यह द्विआधारी संख्या 101 के बराबर है। और हम 2 की शक्तियों में भिन्नात्मक भाग का विस्तार करते हैं।

स्टेप 1: 2 -2 = 0.25; 0.401 - 0.25 = 0.151. शेष है।

चरण दो:अब हमें दो की शक्ति के रूप में 0.151 का प्रतिनिधित्व करने की आवश्यकता है। चलो यह करते हैं: 2 -3 = 0.125; 0.151 - 0.125 = 0.026

इस प्रकार, मूल भिन्नात्मक भाग को 2 -2 +2 -3 के रूप में दर्शाया जा सकता है। इसे ऐसी बाइनरी संख्या: 0.011 में लिखा जा सकता है। पहला भिन्नात्मक अंक शून्य है, ऐसा इसलिए है क्योंकि हमारे विस्तार में डिग्री 2 -1 अनुपस्थित है।

पहले और दूसरे चरण से यह स्पष्ट है कि यह प्रतिनिधित्व सटीक नहीं है और अपघटन को जारी रखना वांछनीय हो सकता है। आइए वापस नियम पर चलते हैं। यह कहता है कि हमें M के इतने चिन्ह चाहिए कि 10 3 2 M से कम हो। यानी 1000<2 M . То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как 2 9 = 512 и только 2 10 = 1024. Продолжим процесс.

चरण 3:अब हम 0.026 नंबर के साथ काम कर रहे हैं। इस संख्या से दो की निकटतम शक्ति 2 -6 \u003d 0.015625 है; 0.026 - 0.015625 = 0.010375 अब हमारी अधिक सटीक बाइनरी संख्या 0.011001 है। दशमलव बिंदु के बाद पहले से ही छह दशमलव स्थान हैं, लेकिन यह अभी तक पर्याप्त नहीं है, इसलिए हम एक और चरण करते हैं।

चरण 4:अब हम 0.010375 नंबर के साथ काम कर रहे हैं। इस संख्या से दो की निकटतम शक्ति 2 -7 \u003d 0.0078125 है;

0,010375 - 0,0078125 = 0,0025625

चरण 5:अब हम 0.0025625 नंबर के साथ काम कर रहे हैं। इस संख्या से दो की निकटतम शक्ति 2 -9 \u003d 0.001953125 है;

0,0025625 - 0,001953125 = 0,000609375

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

0,401 = 0,011001101

जैसा कि आप देख सकते हैं, दशमलव संख्या के भिन्नात्मक भाग को द्विआधारी प्रतिनिधित्व में परिवर्तित करना पूर्णांक भाग को परिवर्तित करने की तुलना में थोड़ा अधिक जटिल है। व्याख्यान के अंत में दो की शक्तियों की तालिका।

और अब हम परिवर्तन एल्गोरिथ्म लिखते हैं:

एल्गोरिथम का प्रारंभिक डेटा: ए के माध्यम से हम दशमलव रूप में लिखे गए मूल उचित दशमलव अंश को निरूपित करेंगे। मान लीजिए कि इस भिन्न में N चिह्न हैं।

कलन विधि

क्रिया 1. असमानता 10 N . से आवश्यक बाइनरी वर्णों M की संख्या निर्धारित करें< 2 M

चरण 2: द्विआधारी प्रतिनिधित्व के अंकों की गणना करें (शून्य के बाद के अंक)। अंकों की संख्या को प्रतीक के द्वारा दर्शाया जाएगा।

  1. अंक संख्या = 1
  2. अगर 2-के> ए

फिर हम बाइनरी नंबर के अंकन में शून्य जोड़ते हैं

    • बाइनरी नंबर में 1 जोड़ें
    • ए \u003d ए - 2 -के
  1. के = के + 1
  2. अगर कश्मीर > एम
  • तो एल्गोरिथ्म समाप्त हो गया है।
  • अन्यथा, चरण 2 पर जाएँ।

दशमलव को बाइनरी में बदलें

ए) 3.6 बी) 12.0112 सी) 0.231 डी) 0.121 ई) 23.0091

बाइनरी नंबरों का घटाव। संख्या घटाएं, हम भी एक कॉलम होंगे और सामान्य नियम के समान है दशमलव संख्याएं, घटाव थोड़ा-थोड़ा करके किया जाता है और यदि डिस्चार्ज में पर्याप्त इकाई नहीं है, तो यह पुराने में व्याप्त है। आइए निम्नलिखित उदाहरण को हल करें:

पहला रैंक। 1 - 0 = 1। हम 1 लिखते हैं।

दूसरी रैंक 0-1. यूनिट गायब है। हम इसे वरिष्ठ श्रेणी में लेते हैं। उच्चतम अंक में से एक निम्नतम तक जाता है, दो इकाइयों के रूप में (क्योंकि उच्चतम अंक को दो से अधिक डिग्री द्वारा दर्शाया जाता है) 2-1 \u003d 1. हम 1 लिखते हैं।

तीसरी रैंक. हमने इस अंक की इकाई पर कब्जा कर लिया है, इसलिए अब अंक 0 में सबसे महत्वपूर्ण अंक की इकाई पर कब्जा करने की आवश्यकता है। 2-1 = 1। हम 1 लिखते हैं।

आइए परिणाम को दशमलव प्रणाली में देखें

1101 - 110 = 13 - 6 = 7 (111) सच्ची समानता।

घटाव करने का एक और दिलचस्प तरीका दो के पूरक की अवधारणा से संबंधित है, जो आपको घटाव को जोड़ में कम करने की अनुमति देता है। यह पता चला है कि एक अतिरिक्त कोड में एक संख्या बेहद सरल है, हम एक संख्या लेते हैं, शून्य को एक के साथ बदलते हैं, इसके विपरीत, हम लोगों को शून्य से बदलते हैं और एक को कम से कम महत्वपूर्ण अंक में जोड़ते हैं। उदाहरण के लिए, 10010 दो के पूरक कोड में 011011 होगा।

दो के पूरक घटाव नियम में कहा गया है कि घटाव को जोड़ से बदला जा सकता है यदि घटाव को दो के पूरक कोड में एक संख्या से बदल दिया जाता है।

उदाहरण: 34 - 22 = 12

आइए इस उदाहरण को बाइनरी फॉर्म में लिखते हैं। 100010 - 10110 = 1100

10110 नंबर के लिए अतिरिक्त कोड इस प्रकार होगा

01001 + 00001 = 01010। फिर मूल उदाहरण को इस तरह से जोड़ा जा सकता है 100010 + 01010 = 101100 अगला, आपको उच्चतम क्रम में एक इकाई को त्यागने की आवश्यकता है। यदि हम ऐसा करते हैं, तो हमें 001100 मिलता है। हम महत्वहीन शून्य को छोड़ देते हैं और 1100 प्राप्त करते हैं, अर्थात उदाहरण सही ढंग से हल किया गया था

अपने घटाव करें। सामान्य तरीके से और अतिरिक्त कोड में, पहले दशमलव संख्याओं को बाइनरी में परिवर्तित करना:

द्विआधारी परिणाम को दशमलव में परिवर्तित करके जांचें।

बाइनरी नंबर सिस्टम में गुणन।

आइए निम्नलिखित दिलचस्प तथ्य से शुरू करते हैं। एक बाइनरी संख्या को 2 से गुणा करने के लिए (दशमलव दो बाइनरी में 10 है), यह बाईं ओर गुणा संख्या में एक शून्य जोड़ने के लिए पर्याप्त है।

उदाहरण। 10101 * 10 = 101010

इंतिहान।

10101 = 1*2 4 + 0*2 3 + 1*2 2 + 0*2 1 +1*2 0 = 16 + 4 + 1 = 21

101010 =1*2 5 + 0*2 4 + 1*2 3 + 0*2 2 +1*2 1 +0*2 0 = 32 + 8 + 2 = 42

यदि हम याद रखें कि किसी भी द्विआधारी संख्या को दो के घात में विस्तारित किया जा सकता है, तो यह स्पष्ट हो जाता है कि द्विआधारी संख्या प्रणाली में गुणा को 10 से गुणा (अर्थात दशमलव 2 से) तक घटा दिया जाता है, और इसलिए, गुणा क्रमिक की एक श्रृंखला है। बदलाव सामान्य नियमइस प्रकार है: दशमलव संख्याओं के लिए, द्विआधारी गुणन को थोड़ा-थोड़ा करके किया जाता है। और दूसरे गुणक के प्रत्येक अंक के लिए पहले गुणक के दायीं ओर एक शून्य जोड़ा जाता है। उदाहरण (अभी तक एक कॉलम नहीं):

1011 * 101 इस गुणन को तीन बिटवाइज़ गुणाओं के योग में घटाया जा सकता है:

1011 * 1 + 1011 * 0 + 1011 * 100 \u003d 1011 + 101100 \u003d 110111 इसी बात को एक कॉलम में इस तरह लिखा जा सकता है:

इंतिहान:

101 = 5 (दशमलव)

1011 = 11 (दशमलव)

110111 = 55 (दशमलव)

5*11 = 55 सही समानता

अपने लिए तय करें

क) 1101 * 1110 =

बी) 1010 * 110 =

ई) 101011 * 1101 =

च) 10010 * 1001 =

नोट: वैसे, बाइनरी सिस्टम में गुणन तालिका में केवल एक आइटम 1 * 1 = 1 . होता है

बाइनरी सिस्टम में विभाजन।

हम पहले से ही तीन क्रियाओं पर विचार कर चुके हैं और मुझे लगता है कि यह पहले से ही स्पष्ट है कि, सामान्य तौर पर, द्विआधारी संख्याओं पर कार्रवाई दशमलव संख्याओं पर क्रियाओं से बहुत कम होती है। अंतर केवल इस तथ्य में प्रकट होता है कि दो अंक हैं और दस नहीं हैं, लेकिन यह केवल अंकगणितीय संचालन को सरल करता है। विभाजन के साथ भी ऐसा ही है, लेकिन विभाजन एल्गोरिथ्म की बेहतर समझ के लिए, हम और अधिक विस्तार से विश्लेषण करेंगे। मान लीजिए हमें दो दशमलव संख्याओं को विभाजित करने की आवश्यकता है, उदाहरण के लिए 234 को 7 से विभाजित करना। हम इसे कैसे करते हैं।

हम दाईं ओर (सबसे महत्वपूर्ण अंक से) इतनी संख्या में अंक आवंटित करते हैं कि परिणामी संख्या यथासंभव छोटी हो और साथ ही भाजक से अधिक हो। 2 भाजक से कम है, इसलिए, हमें जिस संख्या की आवश्यकता है वह 23 है। फिर हम परिणामी संख्या को भाजक द्वारा शेषफल से विभाजित करते हैं। हमें निम्नलिखित परिणाम मिलते हैं:

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

उदाहरण: 10010111 / 101

हम एक ऐसी संख्या की तलाश कर रहे हैं, जिसके उच्चतम क्रम से पहला भाजक से बड़ा हो। यह चार अंकों की संख्या 1001 है। इसे बोल्ड में दिखाया गया है। अब आपको चयनित संख्या के लिए एक भाजक खोजने की जरूरत है। और यहाँ हम दशमलव प्रणाली की तुलना में फिर से जीतते हैं। तथ्य यह है कि चयनित भाजक अनिवार्य रूप से एक अंक है, और हमारे पास केवल दो अंक हैं। चूँकि 1001 स्पष्ट रूप से 101 से बड़ा है, भाजक के साथ सब कुछ स्पष्ट है, यह 1 है। चलो ऑपरेशन चरण करते हैं।

तो, शेष संक्रिया 100 है। यह 101 से कम है, इसलिए द्वितीय श्रेणी के चरण को करने के लिए, आपको अगले अंक को 100 में जोड़ना होगा, यह संख्या 0 है। अब हमारे पास निम्नलिखित संख्या है:

1000 101 से बड़ा है, इसलिए दूसरे चरण में हम फिर से निजी अंक में 1 जोड़ते हैं और निम्नलिखित परिणाम प्राप्त करते हैं (स्थान बचाने के लिए, हम तुरंत अगले अंक को छोड़ देते हैं)।

तीसरा चरण। परिणामी संख्या 110 101 से बड़ी है, इसलिए इस चरण में हम इसे भागफल 1 में लिखेंगे। यह इस तरह निकलेगा:

परिणामी संख्या 11 101 से कम है, इसलिए हम इसे निजी अंक 0 में लिखते हैं और अगले अंक को नीचे करते हैं। यह इस तरह निकलता है:

परिणामी संख्या 101 से अधिक है, इसलिए हम संख्या 1 को भागफल में लिखते हैं और फिर से क्रिया करते हैं। यह चित्र निकलता है:

1

0

परिणामी शेष 10, 101 से कम है, लेकिन हमारे पास लाभांश में अंक नहीं रह गए हैं, इसलिए 10 अंतिम शेषफल है, और 1110 वांछित भागफल है।

दशमलव में चेक करें

यह सबसे सरल अंकगणितीय संक्रियाओं के विवरण को समाप्त करता है जिसे आपको द्विआधारी अंकगणित का उपयोग करने के लिए जानने की आवश्यकता है, और अब हम इस प्रश्न का उत्तर देने का प्रयास करेंगे "हमें द्विआधारी अंकगणित की आवश्यकता क्यों है।" बेशक, यह पहले ही ऊपर दिखाया जा चुका है कि बाइनरी सिस्टम में एक संख्या लिखना अंकगणितीय संचालन को बहुत सरल करता है, लेकिन साथ ही, रिकॉर्ड स्वयं बहुत लंबा हो जाता है, जो प्राप्त सरलीकरण के मूल्य को कम कर देता है, इसलिए यह देखना आवश्यक है ऐसी समस्याओं के लिए जिनका समाधान बाइनरी नंबरों में बहुत आसान है।

कार्य 1: सभी नमूने प्राप्त करना

बहुत बार ऐसे कार्य होते हैं जिनमें आपको दिए गए आइटमों के सेट से सभी संभावित संयोजन बनाने में सक्षम होने की आवश्यकता होती है। उदाहरण के लिए, ऐसा कार्य:

पत्थरों के एक बड़े ढेर को देखते हुए, पत्थरों को दो ढेरों में इस तरह व्यवस्थित करें कि इन दोनों ढेरों का द्रव्यमान जितना संभव हो उतना समान हो।

यह कार्य निम्नानुसार तैयार किया जा सकता है:

एक बड़े ढेर से पत्थरों का एक नमूना इस तरह से खोजें कि इसका कुल द्रव्यमान बड़े ढेर के आधे द्रव्यमान से जितना संभव हो उतना कम हो।

इस तरह के काफी कुछ कार्य हैं। और वे सभी नीचे आते हैं, जैसा कि पहले ही उल्लेख किया गया है, तत्वों के दिए गए सेट से सभी संभावित संयोजन (हम उन्हें नीचे चयन कहेंगे) प्राप्त करने की क्षमता के लिए नीचे आते हैं। और अब हम बाइनरी एडिशन ऑपरेशन का उपयोग करके सभी संभावित नमूने प्राप्त करने के लिए एक सामान्य विधि पर विचार करेंगे। आइए एक उदाहरण से शुरू करते हैं। तीन वस्तुओं का एक सेट होने दें। हम सभी संभावित नमूनों का निर्माण करते हैं। वस्तुओं को क्रम संख्या द्वारा निरूपित किया जाएगा। अर्थात्, निम्नलिखित मदें हैं: 1, 2, 3।

नमूने: (0, 0, 1); (0, 1, 0); (0, 1, 1); (100); (1, 0, 1); (1, 1, 0); (1, 1, 1);

यदि अगली संख्या के साथ स्थिति में कोई है, तो इसका मतलब है कि इस स्थिति के बराबर संख्या वाला तत्व चयन में मौजूद है, और यदि शून्य है, तो तत्व मौजूद नहीं है। उदाहरण के लिए, नमूना (0, 1, 0); संख्या 2 के साथ एक तत्व होता है, और नमूना (1, 1, 0) है; संख्या 1 और 2 वाले दो तत्वों से मिलकर बनता है।

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

001; 010; 011; 100; 101; 110; 111

1; 10; 11; 100; 101; 110; 111

हमें लगातार बाइनरी नंबरों की एक श्रृंखला प्राप्त हुई है, जिनमें से प्रत्येक को पिछले एक से जोड़कर प्राप्त किया जाता है। आप इसकी जांच कर सकते हैं। इस देखी गई नियमितता का उपयोग करके, हम नमूने प्राप्त करने के लिए निम्नलिखित एल्गोरिथम का निर्माण कर सकते हैं।

एल्गोरिथम का प्रारंभिक डेटा

मदों के एक सेट को देखते हुए N - टुकड़े। इस प्रकार, हम इस समुच्चय को प्रारंभिक तत्वों के समुच्चय के रूप में संदर्भित करेंगे। आइए मूल समुच्चय के सभी तत्वों को 1 से N तक संख्या दें। आइए N नगण्य शून्य से एक द्विआधारी संख्या बनाते हैं। 0000… 0 N यह शून्य बाइनरी संख्या उस शून्य नमूने को दर्शाती है जिससे नमूना लेने की प्रक्रिया शुरू होगी। किसी संख्या के अंक दाएं से बाएं ओर गिने जाते हैं, अर्थात सबसे बाईं ओर का अंक सबसे महत्वपूर्ण होता है।

आइए इस द्विआधारी संख्या को बड़े अक्षरों BINARY के साथ निरूपित करने के लिए सहमत हों

कलन विधि

यदि एक बाइनरी संख्या में पूरी तरह से होते हैं

फिर हम एल्गोरिथम को रोकते हैं

    • हम बाइनरी अंकगणित के नियमों के अनुसार BINARY संख्या में एक जोड़ते हैं।
    • प्राप्त बाइनरी नंबर से हम अगले नमूने की रचना करते हैं, जैसा कि ऊपर वर्णित है।

टास्क 2: बड़े प्राइम ढूँढना

सबसे पहले, याद रखें कि एक अभाज्य संख्या एक प्राकृतिक संख्या है जो केवल 1 और स्वयं से विभाज्य है। अभाज्य संख्याओं के उदाहरण: 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31

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

टिप्पणी। एक मजबूत सिफर एक सिफर होता है जिसे डिक्रिप्ट करने में बहुत लंबा समय लगता है।

क्यों? एक अभाज्य संख्या एन्क्रिप्शन और डिक्रिप्शन में एक कुंजी की भूमिका निभाती है। इसके अलावा, हम जानते हैं कि प्राकृतिक संख्याओं की श्रृंखला में अभाज्य संख्याएँ बहुत बार नहीं आती हैं। पहले हजार में इनकी संख्या काफी होती है, फिर इनकी संख्या तेजी से घटने लगती है। इसलिए, यदि हम एक कुंजी के रूप में बहुत बड़ी संख्या नहीं लेते हैं, तो डिक्रिप्टर, बहुत भी नहीं का उपयोग कर रहा है तेज़ कंप्यूटरसीमित समय में इसे प्राप्त करने में सक्षम होंगे (सभी प्रमुखों को एक-एक करके एक कुंजी के रूप में छांटकर)।

एक काफी विश्वसनीय कोड प्राप्त किया जा सकता है यदि आप एक साधारण कोड लेते हैं, उदाहरण के लिए, 150 वर्ण। हालांकि, इतना आसान खोजना इतना आसान नहीं है। आइए मान लें कि कुछ संख्या ए (बहुत बड़ी) को प्रधानता के लिए परीक्षण करने की आवश्यकता है। यह इसके भाजक की तलाश के समान है। यदि हम 2 और A के वर्गमूल के बीच भाजक ज्ञात कर सकते हैं, तो यह अभाज्य नहीं है। आइए उन संख्याओं की संख्या का अनुमान लगाएं जिन्हें संख्या A को विभाजित करने की क्षमता के लिए जाँचने की आवश्यकता है।

मान लीजिए कि संख्या A में 150 अंक हैं। इसके वर्गमूल में कम से कम 75 अक्षर होंगे। इतने सारे संभावित विभाजकों को छाँटने के लिए, हमें बहुत कुछ चाहिए शक्तिशाली कंप्यूटरऔर विशाल समय, जिसका अर्थ है कि समस्या व्यावहारिक रूप से अनसुलझी है।

इसका सामना कैसे करें।

सबसे पहले, आप जल्दी से एक संख्या की दूसरे से विभाज्यता की जांच करना सीख सकते हैं, और दूसरी बात, आप संख्या ए को इस तरह से चुनने का प्रयास कर सकते हैं कि यह उच्च स्तर की संभावना के साथ सरल हो। यह पता चला है कि यह संभव है। गणितज्ञ मेर्सन ने निम्नलिखित रूपों की संख्याओं की खोज की:

उच्च स्तर की संभावना के साथ सरल हैं।

ऊपर लिखे वाक्यांश को समझने के लिए, आइए गिनें कि पहले हज़ार में कितनी अभाज्य संख्याएँ हैं और एक ही हज़ार में कितनी Mersenne संख्याएँ अभाज्य हैं। तो पहले हज़ार में Mersen संख्याएँ इस प्रकार हैं:

2 1 - 1 = 1 ; 2 2 -1 = 3 ; 2 3 - 1 = 7 ; 2 4 - 1 = 15; 2 5 - 1 = 31 ; 2 6 -1 = 63;

2 7 - 1 =127 ; 2 8 -1 = 255; 2 9 - 1 = 511;

अभाज्य संख्याओं को बोल्ड में चिह्नित किया गया है। कुल मिलाकर 9 Mersenne संख्याओं के लिए 5 अभाज्य संख्याएँ हैं। प्रतिशत के रूप में, यह 5/9 * 100 \u003d 55.6% है। वहीं, पहले 1000 प्राकृत संख्याओं के लिए केवल 169 अभाज्य हैं। प्रतिशत के रूप में, यह 169/1000 * 100 = 16.9% है। अर्थात्, पहले हजार में, प्रतिशत के संदर्भ में, मेर्सन संख्याओं के बीच अभाज्य संख्याएं केवल प्राकृतिक संख्याओं की तुलना में लगभग 4 गुना अधिक पाई जाती हैं।

___________________________________________________________

और अब एक विशिष्ट Mersen संख्या लेते हैं, उदाहरण के लिए 2 4 - 1. आइए इसे एक बाइनरी संख्या के रूप में लिखते हैं।

2 4 - 1 = 10000 - 1 = 1111

आइए अगला Mersen नंबर 2 5 -1 लें और इसे बाइनरी नंबर के रूप में लिखें। हमें निम्नलिखित मिलता है:

2 5 -1 = 100000 - 1 = 11111

यह पहले से ही स्पष्ट है कि सभी Mersenne संख्याएँ इकाइयों का एक क्रम है, और यह तथ्य अकेले देता है बड़ी जीत. सबसे पहले, बाइनरी सिस्टम में अगला Mersenne नंबर प्राप्त करना बहुत आसान है, यह एक को अगले नंबर में जोड़ने के लिए पर्याप्त है, और दूसरी बात यह है कि बाइनरी सिस्टम में डिविज़र्स को दशमलव एक की तुलना में देखना बहुत आसान है।

बाइनरी रूपांतरण के लिए तेज़ दशमलव

बाइनरी नंबर सिस्टम का उपयोग करने में मुख्य समस्याओं में से एक दशमलव संख्या को बाइनरी में बदलने में कठिनाई है। यह काफी श्रमसाध्य कार्य है। बेशक, तीन या चार अंकों की छोटी संख्याओं का अनुवाद करना बहुत मुश्किल नहीं है, लेकिन दशमलव संख्याओं के लिए जिनमें 5 या अधिक अंक हैं, यह पहले से ही मुश्किल है। यही है, हमें बड़ी दशमलव संख्याओं को जल्दी से द्विआधारी प्रतिनिधित्व में बदलने का एक तरीका चाहिए।

इस पद्धति का आविष्कार फ्रांसीसी गणितज्ञ लेजेन्ड्रे ने किया था। उदाहरण के लिए, संख्या 11183445 दी गई है। हम इसे 64 से विभाजित करते हैं, हमें शेष 21 और भागफल 174741 प्राप्त होता है। हम इस संख्या को फिर से 64 से विभाजित करते हैं, हमें शेष 21 और भागफल 2730 मिलता है। अंत में, 2730 से विभाजित 64 शेष 42 देता है और भागफल 42 लेकिन बाइनरी में 64 1000000 है, बाइनरी में 21 10101 है, और 42 101010 है, इसलिए मूल संख्या बाइनरी में इस प्रकार लिखी जाएगी:

101010 101010 010101 010101

इसे स्पष्ट करने के लिए, छोटी संख्या के साथ एक और उदाहरण। आइए संख्या 235 के द्विआधारी प्रतिनिधित्व का अनुवाद करें। शेष के साथ 235 को 64 से विभाजित करें। हम पाते हैं:

निजी = 3, बाइनरी 11 या 000011

संकल्प = 43, बाइनरी 101011

फिर 235 = 11101011, इस परिणाम की जाँच करें:

11101011 = 2 7 + 2 6 + 2 5 + 2 3 + 2 1 + 2 0 = 128+64+32+8+2+1 = 235

टिप्पणियाँ:

  1. यह देखना आसान है कि अंतिम बाइनरी संख्या में सभी शेष और अंतिम चरण में, शेष और भागफल दोनों शामिल हैं।
  2. भागफल को शेष से पहले लिखा जाता है।
  3. यदि परिणामी भागफल या शेषफल में द्विआधारी प्रतिनिधित्व में 6 अंकों से कम है (6 शून्य में संख्या 64 = 1000000 का द्विआधारी प्रतिनिधित्व होता है), तो इसमें महत्वहीन शून्य जोड़ दिए जाते हैं।

एक और जटिल उदाहरण. संख्या 25678425।

चरण 1: 25678425 64 . से विभाजित

निजी = 401225

शेष = 25 = 011001

चरण 2: 401225 64 . से विभाजित

निजी = 6269

शेष = 9 = 001001

चरण 3: 6269 64 . से विभाजित

निजी = 97

शेष = 61 = 111101

चरण 4: 97 को 64 . से विभाजित किया गया

निजी = 1 = 000001

शेष = 33 = 100001

संख्या परिणाम = 1.1000001.11101.001001.011001

इस संख्या में एक बिंदु इसमें शामिल मध्यवर्ती परिणामों को अलग करता है।

किसी संख्या के द्विआधारी प्रतिनिधित्व में कनवर्ट करें:

परिशिष्ट: तालिका 1

0,015625

0,0078125

0,00390625

0,001953125

0,0009765625

0,00048828125

0,000244140625

0,0001220703125

0,00006103515625

0,000030517578125

0,0000152587890625

0,00000762939453125

0,000003814697265625

0,0000019073486328125

0,00000095367431640625

0,000000476837158203125