تالار گفتمان مانشت

نسخه‌ی کامل: پیدا کردن عنصر i,j ام آرایه
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
من فرمولی رو که توی کتاب یوسفی و طورانی بود امتحان کردم از نظر واقعی درست در نمیاد.
کسی میتونه فرمولاشون رو اثبات کنه؟
طبق فرمولی که توی کتاب مقسمی هست جواب گزینه‌ی ۴ هست!فرمول روش سطری اینه:
تعریف زیر رو در نظر بگیرید:
[tex]A:array[1..m,1..n]\ of \ dataType[/tex]
اگر قرار باشه به عنصر سطر i‌ام و ستون j‌ام رسید باید اول i-1 سطر رو به طور کامل رد کرد.با توجه به اینکه هر سطر هم n ستون داره پس باید [tex](i-1)*n[/tex] عنصر رو رد کرد.حالا در ابتدای سطر i‌ام هستیم.باید j عنصر بریم جلو تا برسیم به خونه j‌ام از سطر i ام.یعنی فرمول زیر:
[tex]((i-1)*n j)[/tex]
چون هر خونه از آرایه به اندازه [tex]sizeof(dataType)[/tex] حافظه مصرف میکنه پس کل فرمول بالا ضرب میشه در فرمول اولی.یعنی میشه:
[tex]((i-1)*n j)*sizeof(dataType)[/tex]
و در نهایت به فرمول بالا باید آدرس شروع قرارگیری آرایه در حافظه اضافه بشه.یعنی:
[tex]((i-1)*n j)*sizeof(dataType) \alpha[/tex]
به نظرم واسه تعداد ابعاد بیشتر هم همین طوره یعنی اگر فرض کنید n بعد داشته باشید و هر بعد Xiتا عنصر داشته باشه برای این که عنصر (E1,E2,E3,..,Em) رو پیدا کنید باید عنصر اول یعنی E1 رو در تعداد عناصر در تمامی بعدها به غیر از بعد اول صرب می کنیم و دومین عنصر یعنی E2 رو در تعداد عناصر موجود در تمامی ابعاد به جز دو بعد اول ضرب می کنیم (از X3 تا اخر) و در نهایت با Em جمع کرده و حاصل کل رو در سایز اون نوع ضرب کرده و با ادرس شروع جمع می کنیم.
لینک مرجع