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

خوارزمية تحويل النظم العددية

بدأه faridb في 6 ديسمبر 2013 · 4 رد · 1,410 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اشكركم كثيرا علي هذا المنتدى الاكثر من رائع ,جعله الله في ميزان حسناتكم

 

انا مبتدىء في عالم البرمجة و اريد ان ابرمج برنامج لهذا اريد منكم فقط اعطايء و لو فكرة كيف اعمل الخوارزمية,

اقوم بقراءة عددين متساويين احدهما مكتوب في النظام العشري و الاخر مكتوب في نظام اخر لا اعرفه في البداية و هذا هو الغرض من البرنامج اي اكشف في اي نظام مكتوب هذا العدد الثاني مع العلم اني قرات الرقم الذي يساويه في النظام العشري, اريد فقط فكرة اعمل الخوارزمية جازام الله خيرا

#2

كلمتين :)

عدد المنازل .. مثلاً لو كان عندي 6855161 بالعشري .. و العدد الآخر كان  20 منزلة وهو بالنظام X , فيمكن القول أن اللوغاريتم الإكسي للرقم 6855161 هو 20

logx(6855161)=20

 أي أن

6855161=X20

وعند أخذالجذر العشريني للطرفين نجد أن : X=2.1968524202910983796820957586945  أي أن العدد بالنظام 2 الأغلب :)

 

أظن أن الفكرة وصلت :) بالتوفيق

#3

السلام عليكم

اشكرك كثيرا على الاجابة

يا اخي هذه القاعدة تصلح فقط في النظام الثنائي

مثلا اعطي رقم 8 في النظام العشري و الذي يساوي 10  في نظام اخر

في هذه الحلة البرنامج يخبرني ان الرقم الثاني مكتوب في النظام الثماني

ارجو ان الفكرة وصلت و بارك الله فيك

#4

فكرة كود

val x=8;
val y=10;
val z="";

select  case x
case log(x)=y
	z="type1"
case tan(x)=y
	z="type2"
end

end = z
#5

لو افترضنا ان العدد الثاني سيتكون فقط من الرقيم فى المدى 0 و 9 و الحروف A to Z، حينها تكون صفحة المحارف لدينا هى

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789abcdefghijklmnopqrstuvwxyz

و هذا يعنى انك بحصولك على اكبر رمز موجود بأى من الأرقام المدخله تستطيع معرفة الأساس و سيكون تبعا لصفحة المحارف موقع الرقم، مثلا الرقم 26e5gA أكبر رمز به هو g و موقعه داخل صفحة المحارف 17، لذا يصبح الأساس لدينا 17، و يتم تحويل الرقم كالتالي:

26e5gA

(17^5 * 2) + (17^4 * 6) + (17^3 * e) + (17^2 * 5) + (17^1 * g) + (17^0 * A)

2839714 + 501126 + (4913 * 15) + 1445 + (17 * 17) + (1 * 10)

2839714 + 501126 + 73695 + 1445 + 289 + 10

3416279

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

 

ملحوظة: صفحة المحارف التى قمت بوضعها هى التى ينبثق منها النظام الثنائي و الثماني و العشرى و السداسي العشرى و الأنظمة العديدة حتى الأساس 36.

 

 

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

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