ट्रैक
/
PHP
PHP
/
अभ्यास
/
Eliud के अंडे
Eliud के अंडे

Eliud के अंडे

मध्यम

परिचय

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

Eliud आपसे एक ऐसा प्रोग्राम लिखने के लिए कह रही हैं जो दड़बे में मौजूद अंडों की वास्तविक संख्या दिखाए।

जगह की जानकारी का एनकोडिंग इस तरह निकाला जाता है:

  1. जिन जगहों पर अंडे हो सकते हैं, उन्हें देखिए और हर जगह के लिए लिखिए: अंडा होने पर 1, और खाली जगह पर 0।
  2. उस संख्या को बाइनरी से दशमलव में बदलिए।
  3. नतीजा डिस्प्ले पर दिखाइए।

उदाहरण 1

एक कतार में लगे सात अलग-अलग घोंसले के डिब्बे, जिनमें पहले, तीसरे, चौथे और सातवें घोंसले में एक-एक अंडा है।

 _ _ _ _ _ _ _
|E| |E|E| | |E|

बनने वाली बाइनरी संख्या

1011001

 _ _ _ _ _ _ _
|1|0|1|1|0|0|1|

डिस्प्ले पर दशमलव संख्या

89

दड़बे में मौजूद वास्तविक अंडे

4

उदाहरण 2

एक कतार में लगे सात अलग-अलग घोंसले के डिब्बे, जिनमें सिर्फ चौथे घोंसले में अंडा है।

 _ _ _ _ _ _ _
| | | |E| | | |

बनने वाली बाइनरी संख्या

0001000

 _ _ _ _ _ _ _
|0|0|0|1|0|0|0|

डिस्प्ले पर दशमलव संख्या

8

दड़बे में मौजूद वास्तविक अंडे

1

निर्देश

आपको यह गिनना है कि किसी संख्या के बाइनरी रूप में कितने 1 बिट हैं।

प्रतिबंध

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

बिटवाइज़ ऑपरेटर

PHP में बिटवाइज़ ऑपरेटर मौजूद हैं।

उदाहरण के लिए, “बिटवाइज़ और” ऑपरेटर (&) का उपयोग यह जाँचने के लिए किया जा सकता है कि किसी संख्या का कोई बिट सेट है या नहीं:

$number = 89; // 0b01011001
$mask16 = 16; // 0b00010000
$mask32 = 32; // 0b00100000

$isMask16 = ($number & $mask16) > 0; // 0b00010000 > 0 => TRUE
$isMask32 = ($number & $mask32) > 0; // 0b00000000 > 0 => FALSE
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
PHP Exercism

Eliud के अंडे शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और PHP को 11 कॉन्सेप्ट122 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।