عند العمل مع الأرقام في البرمجة ، غالبا ما يكون من الضروري التحقق مما إذا كان الرقم هو قوة اثنين. في لغة برمجة بايثون ، هناك عدة طرق لإجراء هذا الفحص.
الطريقة الأولى هي استخدام عمليات البت. إذا كان الرقم هو قوة اثنين ، ثم سيكون لها بت واحد فقط تعيين إلى 1. للتحقق من هذا الشرط ، يمكنك استخدام البت والتشغيل بين الرقم وقيمته السابقة ناقص 1. إذا كانت النتيجة صفرا ، فإن الرقم هو قوة اثنين.
رقم الإرجاع و (رقم-1) = = 0
مواطنه قوية_من_اثنين (عدد):
- سجل 2 (رقم)
- وبالتالي ، هناك عدة طرق للتحقق مما إذا كان الرقم هو قوة اثنين في بايثون. يعتمد اختيار الطريقة على متطلبات وخصائص المهمة المحددة.
- كيف يمكنني تحديد ما إذا كان الرقم هو قوة اثنين في بيثون?
- طرق التحقق البسيطة في بايثون
استخدام عامل النسبة المئوية (باقي القسمة)
استخدام عمليات البت
باستخدام وظيفة بن ()
نهج رياضي لتحديد قوة اثنين
استخدام عمليات البت للتحقق من قوة اثنين
سؤال وجواب
كيف يمكنني تحديد ما إذا كان الرقم هو قوة اثنين في بيثون?
في كثير من الأحيان ، عند العمل مع الأرقام في البرمجة ، يصبح من الضروري التحقق مما إذا كان الرقم هو قوة اثنين. في بايثون ، يمكنك استخدام عدة طرق للقيام بذلك.
1. استخدام عمليات البت:
مواطنه قوية_من_اثنان (ن):
عودة ن &(ن-1) = = 0
يستخدم هذا الأسلوب عملية البت و ( & ) وعملية الطرح ( - ) للتحقق من أن الرقم ن يحتوي على بت واحد فقط ، والذي يتوافق مع قوى اثنين. إذا تم استيفاء هذا الشرط ، ترجع الدالة صحيح ، وإلا خطأ.
2. استخدام المنطق الرياضي:
يستخدم هذا النهج
الرياضيات.سجل 2 () وظيفة
للحصول على اللوغاريتم الثنائي للرقم ن. ثم يتم تقريب هذه القيمة باستخدام
وظيفة الجولة()
ومقارنة مع القيمة الأصلية باستخدام
الرياضيات.إسكلوس () وظيفة
. إذا كانت الأرقام قريبة من بعضها البعض ، فهذا يعني أن الرقم هو قوة اثنين.
3. باستخدام الوظائف المضمنة:
مواطنه قوية_من_اثنان (ن):
- عودة ن > 0 و (ن &(ن-1) = = 0)
- يجمع هذا النهج بين النهجين الأول والثاني باستخدام عمليات البت والوظائف الرياضية. ترجع الدالة صحيحا إذا كان الرقم أكبر من الصفر ويحتوي على بت واحد فقط ، وإلا فهو خاطئ.
- يمكنك اختيار أي من هذه الأساليب بناء على تفضيلاتك ومتطلبات الأداء.
طرق التحقق البسيطة في بايثون
- هناك عدة طرق بسيطة للتحقق مما إذا كان الرقم هو قوة اثنين في بايثون:
- استخدام عامل النسبة المئوية (باقي القسمة)
- خذ لوغاريتم رقم بناء على الأساس 2.
- إذا كانت النتيجة تختلف عن عدد صحيح ، فإن الرقم ليس قوة اثنين.
إذا كانت النتيجة عددا صحيحا ، فإن الرقم هو قوة اثنين.
- استخدام عمليات البت
- تأكد من أن الرقم أكبر من الصفر.
- استخدم البت أو مع الرقم السابق (الرقم هو 1).
- إذا كانت النتيجة صفرا ، فإن الرقم هو قوة اثنين.
خلاف ذلك ، فإن الرقم ليس قوة اثنين.
باستخدام وظيفة بن ()
استخدم دالة الحاوية () لتحويل رقم إلى نموذج ثنائي.
تأكد من أن الحرف الأول هو ' 1 'وجميع الشخصيات الأخرى هي '0'.
إذا تم استيفاء الشرط ، فإن الرقم هو قوة اثنين.
- نهج رياضي لتحديد درجة اثنين
- طريقة واحدة لتحديد ما إذا كان الرقم هو قوة اثنين هو نهج رياضي. في هذا النهج ، نستخدم خاصية الأعداد كقوى اثنين.
- خاصية: إذا كان الرقم قوة اثنين ، فإنه يحتوي على رقم واحد فقط في الترميز الثنائي. على سبيل المثال ، تحتوي الأرقام 2 و 4 و 8 على إدخالات ثنائية 10 و 100 و 1000 على التوالي ، حيث يكون رقم واحد فقط هو 1.
بناء على هذه الخاصية ، يمكننا تحديد ما إذا كان الرقم يمثل قوة اثنين على النحو التالي:
تحويل الرقم إلى تدوين ثنائي. للقيام بذلك ، يمكننا استخدام الوظيفة
بن()
، والذي يحول رقما إلى سلسلة تحتوي على تمثيله الثنائي.
حذف الحرف الأول من السلسلة ، لأنه يساوي دائما '0'.
إذا كانت بقية السلسلة تتكون فقط من الأحرف '1' ، فإن الرقم هو قوة اثنين.
مثال التعليمات البرمجية تنفيذ هذا النهج:
"'بايثون
مواطنه قوية_من_اثنان (ن):
ثنائي = بن (ن) [3:] # تحويل رقم إلى تمثيل ثنائي وحذف الحرف الأول
إذا ثنائي.العد ('1') = = لين (ثنائي): # التحقق مما إذا كان الجزء المتبقي من السلسلة يتكون فقط من الأحرف '1'
عند تنفيذ هذا الرمز ، وظيفة
هو_قوية_من_اثنين()
سوف يعود
- صحيح
- إذا كان الرقم هو قوة اثنين ، و
خطأ
خلاف ذلك. |
استخدام عمليات البت للتحقق من قوة اثنين |
مواطنه قوية_من_اثنان (ن):
عودة ن &(ن-1) = = 0 و ن > 0
وظيفة العودة أعلاه |
صحيح |
إذا كان الرقم هو قوة اثنين ، و