الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عكس العمليات الحسابية

بدأه sar0o0na في 11 ديسمبر 2008 · 6 رد · 1,393 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أردت السؤال عن عكس العبارة التالية

num=(num+7)%10

اللي أعرفه إن عكس عملية الجمع هي الطرح

وعكس عملية الضرب هي القسمة

لكن لم أسمع بعكس عملية باقي القسمة %

أرجو المساعدة....

programmerssu3.gif
#2

عليكم السلام ورحمة الله,

لا أعتقد إن من الممكن عكس عملية الـ modulo ...

على سبيل المثال...

100 % 15 = 10

115 % 15 = 10

130 % 15 = 10

يمكنك الإستمرار إلى ما لانهاية بإضافة 15 كل مرة وستحصل دائماً على 10.

كما ترى, يبدو الموضوع مستحيلاً, إذا حصلت على ناتج عملية باقي القسمة لا يمكن التوصل إلى الرقم الأصلي حتى وإن كنت تملك المعامل.

بالإضافة لذلك, العبارة بأكملها غير منطقية, حيث إن الجانب الأيمن لا يساوي الجانب الأيسر لكل قيم num. :blink:

#3
اقتباس
بالإضافة لذلك, العبارة بأكملها غير منطقية, حيث إن الجانب الأيمن لا يساوي الجانب الأيسر لكل قيم num.

اعتقد انها تمثل فقط Assignment

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#4

لم تفهموا قصدي

عندي متغير إسمه num قمت بأخذ قيمته من الـ user

أريد إجراء تغيير على هذه القيمة باستخدام هذه العملية

num=(num+7)%10

ثم بعد ذلك أريد استعادة قيمة num الأولى عن طريق إزالة الإضافات

مثال: num= num -7

ولكن لم أعرف كيف أزيل الـ modulo

هذا هو قصدي

programmerssu3.gif
#5
اقتباس
لا أعتقد إن من الممكن عكس عملية الـ modulo ...

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#6

نفذ الكود التالي عدد من المرات بادخال ارقام مختلفة سوف تلاحظ انه يظهر لك فقط خانة الآحاد!

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.  
  7. int a;
  8. while((cin>>a),a>0)
  9. cout<<a%10<<endl;
  10.  
  11.  
  12. return 0;
  13. }
  14.  

لن تستطيع معرفة عدد بمعرفة خانة الآحاد فقط.

tvquran_6.gif

#7

هل هذا يعني أنه لا توجد طريقة تمكني من إستعادة العدد

بعد إجراء هذه العملية عليه؟

programmerssu3.gif

مواضيع مشابهة