زمان کنونی: 2018/10/22، 09:00 PM درود مهمان گرامی! (ورودثبت نام)
کاربران عزیز برای طرح هر گرونه سوال مرتبط با موضوع انجمن لطفا ابتدا در انجمن عضو شده و سپس با ورود ب بخش مورد نظر سوالتان را مطرح کنید.


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
الگوریتم شمردن با ارقام مختلف
#1
چگونه با مجموعه ارقام مختلف، اعداد ممکن را ب ترتیب ارزش ان ها پیدا کنیم؟

معمولا ما با ارقام 0 و 1 و .... و 9 اشیاء مورد نظر خود را می شماریم، حتی بدون اینکه بدانیم از چ روشی استفاده می کنیم! شاید روش شمردن با این ارقام برای ما ب نوعی حفظ شده باشد و ب راحتی بتوانیم تا هر میزان ک دوست داشته باشیم شماره کنیم و پس از هر عدد، عدد بعدی را نیز بتوانیم پیدا کنیم.

حالا اگر ارقام مورد نظر ما عوض شود چگونه باید شمارش کنیم؟؟

مثلا ب جای ارقام 0 تا 9 بخواهیم از ارقام A و B و C و D استفاده کنیم، و یا از ارقام 0 و 1 ک در علم کامپیوتر متداول است.

ک البته ب نظر بنده بهتر است این موضوع با عنوان "روش شمردن با ارقام مختلف" یا "الگوریتم تولید اعداد از ارقام متفاوت" و یا هر عنوان دیگری، در ابتدای مبحث مبنا ها چ در درس مدار های منطقی و چ در مبانی کامپیوتر و برنامه سازی و در مباحث مشابه تدریس شود تا مفهوم مبنا ب صورت کاملا واضح درک شود و صرفا حالت فرمولی نداشته باشد.

برای اینکه بداینم دقیقا با هر دسته ای از ارقام چطور اعداد متفاوت به ترتیب از کوچک ب بزرگ تولید می شود ابتدا بهتر است با ارقام با ارزش و بی ارزش اشنا شویم.

وقتی ما با ارقام 0 و 1 و ... و 9 شروع ب شمردن می کنیم هر کدام از این ارقام یک تعداد از اشیاء را در ذهن ما ب تصویر می کشد. اما عدد صفر ب معنی هیچ تعداد است و شیئی ب ان تعلق نمی گیرد.
در این مجموعه ب ارقام 1 تا 9 با ارزش گفته می شود و ب رقم 0 بی ارزش (نمایانگر هیچ تعداد).


رقم بی ارزش دو خاصیت دارد ک در هر دستگاهی ک رقمی ب عنوان بی ارزش در نظر گرفته شود باید ب این دو خاصیت توجه شود:

1. هر تعداد از این رقم را بدون ب کار گیری ارقام دیگر، پشت سر هم قرار دهیم باز هم ب ارزش ان افزوده نمی شود
یعنی 0=00=000=0000=.... و ب همین ترتیب تا هر تعداد

2.هرگاه در چپ ترین سمت ارقام و اعداد دیگر از رقم بی ارزش استفاده شود(ب هر تعداد) تاثیری بر ارزش عدد فعلی ندارد
یعنی 1=01=001=0001=...

اکنون می توان الگوریتم چگونه شمردن را شرح دهیم.

برای اینکه بخواهیم با ارقام مختلف شروع ب شمردن کنیم از قواعد زیر استفاده می کنیم:

(با فرض اینکه رقم بی ارزش در میان ارقام موجود باشد)

1.کمترین رقم با ارزش موجود را ب عنوان اولین عدد در نظر می گیریم و طبق قواعد کلی زیر پیش می رویم

2.سمت راست ترین رقم عدد فعلی را در نظر می گیریم، اگر قابل افزایش بود ان را یک واحد افزایش داده و ب عنوان عدد بعدی در نظر می گیریم و همین مرحله را برای یافتن عدد بعد از ان تکرار می کنیم، اگر قابل افزایش نبود، (یعنی بزرگترین رقم بود) ب مرحله بعد می رویم

3.اگر رقمی در سمت چپ رقم در حال برسی مرحله قبل وجود داشت ب مرحله 4 و اگر وجود نداشت ب مرحله 5 می رویم

4.رقم بیان شده مورد بحث در مرحله 3 را در نظر می گیریم، اگر قابل افزایش بود ان را یک واحد افزایش داده،تمامی ارقام سمت راست ان را ب کمترین رقم کاهش داده و حاصل را ب عنوان عدد بعدی در نظر میگیریم و برای پیدا کردن عدد بعد از ان ب مرحله 2 برمیگردیم، اگر قابل افزایش نبود ب مرحله 3 برمیگردیم.

5.یک رقم ب ارقام عدد فعلی اضافه می کنیم، برای اضافه کردن رقم، کوچکترین رقم با ارزش را در سمت چپ عدد فعلی اضافه می کنیم و تمامی ارقام بعد از ان را ب کمترین رقم موجود کاهش می دهیم، عدد حاصل را ب عنوان عدد بعدی در نظر گرفته و برای پیدا کردن عدد بعد از ان ب مرحله 2 برمیگردیم.

مثال:

میخواهیم با ارقام A و B و C و D ک در ان A رقم بی ارزش است و ارزش B کمتر از C و ارزش C کمتر از D است شروع ب شمردن کنیم  (A<B<C<D)


رقم A بی ارزش است.

رقم B را ب عنوان اولین عدد در نظر می گیریم

رقم B قابل افزایش است و رقم بعد از ان C است، C را ب عنوان عدد بعدی در نظر می گیریم

رقم C قابل افزایش است و رقم بعد از ان D است، D را ب عنوان عدد بعدی در نظر می گیریم

رقم D قابل افزایش نیست، سمت چپ ان نیز رقمی موجود نیست پس باید یک رقم اضافه کنیم،
سمت چپ D کمترین رقم با ارزش یعنی B را اضافه میکنیم و سپس تمامی ارقام بعد از رقم اضافه شده را ب کمترین رقم کاهش می دهیم و حاصل یعنی BA را ب عنوان عدد بعد در نظر می گیریم.

حالا برای پیدا کردن عدد بعد از BA سمت راست ترین رقم ان یعنی A را در نظر می گیریم، A قابل افزایش است، ان را یک واحد افزایش داده و ب عنوان عدد بعدی در نظر می گیریم، یعنی BB

برای پیدا کردن عدد بعد از BB نیز سمت راست ترین رقم ان یعنی B قابل افزایش است، ان را یک واحد افزایش داده و ب عنوان عدد بعدی در نظر می گیریم، یعنی BC

برای پیدا کردن عدد بعد از BC نیز سمت راست ترین رقم ان یعنی C قابل افزایش است، ان را یک واحد افزایش داده و ب عنوان عدد بعدی در نظر می گیریم، یعنی BD

حالا برای پیدا کردن عدد بعد از BD ، سمت راست ترین رقم ان قابل افزایش نیست، ولی در سمت چپ ان رقم دیگری وجود دارد ک قابل افزایش است، ان را افزایش داده، تمامی ارقام سمت راستش را ب کمترین رقم موجود کاهش می دهیم و ب عنوان عدد بعدی در نظر می گیریم یعنی CA

و ب همین ترتیب اعداد بعدی را می توانیم پیدا کنیم...


حلا با یادگیری این الگوریتم می توانیم درک بهتری از اعداد در مبناهی مختلف داشته باشیم و مفهوم مبنا را بهتر بشناسیم
هرچند ک در مبحث مبناها برای پیدا کردن معادل یک عدد در مبناهای مختلف لازم نیست ب صورت ذهنی با ارقام داده شده شروع ب شمردن کنید و این کار ب علت وقت گیر بودن از طریق فرمول های ریاضی ب صورت کاملا راحت قابل محاسبه است.


تمرین:


برنامه ای بنویسید ک 20 عدد اولیه مثال قبل را پیدا کرده و چاپ کند  Big Grin
پاسخ




کاربرانِ درحال بازدید از این موضوع: 1 مهمان