اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

لا توجد معادلة رياضية معروفة حاليا لمعرفة الرقم هل هو Palindrome Number أم لا .

ولكن توجد العديد من الخوارزميات لحل تلك المشكلة . و أسهل تلك الحلول هو تحويل الرقم إلى سلسلة نصية وعكس تلك السلسلة ومقارنتها بالسلسلة الأصلية وإذا كانوا متشابهين إذا الرقم Palindrome  .

أما إذا أردت حلها رياضيا فسيتوجب عليك عكس الرقم . وأسهل طريقة هي أن نقسم الرقم على 10 وأخذ باقي القسمة وهكذا إلى أن نقوم بعكس الرقم تمام ومقارنته بالرقم الأصلي .

فمثلا :

121 % 10  # باقي القسمة 1
12  % 10  # باقي القسمة 2
1 % 10  # باقي القسمة 1

وهكذا نقوم بالقسمة وأخذ ناتج القسمة وفي كل مرة نقوم بإضافة ناتج قسمة جديد نقوم بضرب الناتج السابق في 10 وجمعه ما باقي القسمة الجديد :

1  # 1
(1 * 10) + 2  # 12
(12 * 10) + 1  # 121

وهكذا قمنا بعكس الرقم حسابيا ويمكنك مقارنته بالرقم الأساسي ومعرفة هل الرقم Palindrome أم لا.

  • 0
نشر

لا يوجد معادلة رياضية محددة  لذلك، وللتوضيح Palindrome Number هو رقم يقرأ بنفس الطريقة من اليمين إلى اليسار ومن اليسار إلى اليمين مثل 121، 353، 9009.

أي من خلال النظر فقط.

ويتم التحقق من Palindrome Number برمجيًا عن طريق مقارنة الرقم الأصلي بمرآته (عكس الرقم) وفي حال الرقمان متساويين، فإن الرقم الأصلي هو Palindrome Number.

ولو أردت كتابة معادلة رياضية فسنكتب التالي:

s = str(n)

rev_s = reverse(s)

is_palindrome = s == rev_s

If is_palindrome is True, then n is a palindrome number.

وهي أقرب لخوارزمية من معادلة رياضية.

  • 0
نشر
بتاريخ 3 دقائق مضت قال محمد عاطف17:

وعليكم السلام ورحمة الله وبركاته.

لا توجد معادلة رياضية معروفة حاليا لمعرفة الرقم هل هو Palindrome Number أم لا .

ولكن توجد العديد من الخوارزميات لحل تلك المشكلة . و أسهل تلك الحلول هو تحويل الرقم إلى سلسلة نصية وعكس تلك السلسلة ومقارنتها بالسلسلة الأصلية وإذا كانوا متشابهين إذا الرقم Palindrome  .

أما إذا أردت حلها رياضيا فسيتوجب عليك عكس الرقم . وأسهل طريقة هي أن نقسم الرقم على 10 وأخذ باقي القسمة وهكذا إلى أن نقوم بعكس الرقم تمام ومقارنته بالرقم الأصلي .

فمثلا :

121 % 10  # باقي القسمة 1
12  % 10  # باقي القسمة 2
1 % 10  # باقي القسمة 1

وهكذا نقوم بالقسمة وأخذ ناتج القسمة وفي كل مرة نقوم بإضافة ناتج قسمة جديد نقوم بضرب الناتج السابق في 10 وجمعه ما باقي القسمة الجديد :

1  # 1
(1 * 10) + 2  # 12
(12 * 10) + 1  # 121

وهكذا قمنا بعكس الرقم حسابيا ويمكنك مقارنته بالرقم الأساسي ومعرفة هل الرقم Palindrome أم لا.

ايوه فعلان انا عملت كده

def is_palindrome(x):

    if x < 0:
        return False
    
    original_num = x
    reversed_num = 0

    while x > 0:
        last_digit = x % 10
        reversed_num = reversed_num * 10 + last_digit
        x = x // 10

    return original_num == reversed_num


print(is_palindrome(121))
print(is_palindrome(-121))

 

فا شكرااا جدا لحضرتكم

انا فكرة ان يكون  فيه معادله رياضيه

  • 0
نشر
بتاريخ 2 ساعة قال Ail Ahmed:

السلام عليكم

هل يوجد معادله رياضيه لحل مساله Palindrome Number ؟

هناك خاصية رياضية قام باكتشافها الرياضيون وتتعلق بالأعداد المتناظرة تسمى "طريقة العكس والجمع" (Reverse and Add Method) أو "196-Algorithm" ويطلق عليها أيضا المشكلة 196 فالخاصية تقول: "خذ أي عدد صحيح موجب، اعكسه وأضفه إلى العدد الأصلي ثم كرر هذه العملية حتى تحصل على عدد متناظر" ويمكنك ملاحظة أن الخاصية هي أقرب ما تكون من الخوارزمية من المعادلة الرياضية ولنعمل مثال:

نبدأ بالعدد 47 وحينما نعكسه نحصل على 74 ثم نجمع: 47 + 74 = 121 نحصل على 121 عددا متناظرا.

لكن هناك بعض الأعداد التي عندما تطبق عليها هذه العملية لا تصل أبدا إلى عدد متناظر وأشهر هذه الأعداد هو 196.

196 + 691 = 887 887 + 788 = 1675 1675 + 5761 = 7436 وهكذا...

لهذا فهذه المشكلة معروفة باسم معضلة 196 (196-Problem) وهي مشكلة رياضية مفتوحة حتى الآن ولم يتمكن العلماء من إثبات ما إذا كانت هذه العملية ستؤدي في النهاية إلى عدد متناظر أم لا.

أما بالنسبة للأعداد المتناظرة نفسها، فهناك صيغة لتوليد الأعداد المتناظرة للأعداد المتناظرة ذات n من الخانات إذا كان n فردي فالأعداد من 10^(n-1) إلى (10^n - 1) وإذا كان n زوجي فيمكن توليدها باستخدام النصف الأول وعكسه لكن هذه ليست معادلة بالمعنى التقليدي، بل هي طريقة لتوليد الأعداد المتناظرة وهناك أيضا بعض الخصائص الرياضية المثبتة للأعداد المتناظرة فأي عدد متناظر من رقمين يقبل القسمة على 11 وعدد الأعداد المتناظرة التي طولها n هو 9 × 10^((n-1)/2) إذا كان n فردي وعدد الأعداد المتناظرة التي طولها n هو 9 × 10^(n/2 - 1) إذا كان n زوجي.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...