تالار گفتمان مانشت
پیدا کردن عنصر i,j ام آرایه - نسخه‌ی قابل چاپ

پیدا کردن عنصر i,j‌ام آرایه - پشتکار - ۱۲ آبان ۱۳۹۰ ۱۲:۰۱ ب.ظ

من فرمولی رو که توی کتاب یوسفی و طورانی بود امتحان کردم از نظر واقعی درست در نمیاد.
کسی میتونه فرمولاشون رو اثبات کنه؟

RE: پیدا کردن عنصر i,j‌ام آرایه - mosaferkuchulu - 12 آبان ۱۳۹۰ ۰۱:۵۸ ب.ظ

طبق فرمولی که توی کتاب مقسمی هست جواب گزینه‌ی ۴ هست!فرمول روش سطری اینه:

RE: پیدا کردن عنصر i,j‌ام آرایه - mfXpert - 12 آبان ۱۳۹۰ ۰۲:۵۹ ب.ظ

تعریف زیر رو در نظر بگیرید:
[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]


پیدا کردن عنصر i,j‌ام آرایه - انرژی مثبت - ۱۲ آبان ۱۳۹۰ ۰۴:۰۵ ب.ظ

به نظرم واسه تعداد ابعاد بیشتر هم همین طوره یعنی اگر فرض کنید n بعد داشته باشید و هر بعد Xiتا عنصر داشته باشه برای این که عنصر (E1,E2,E3,..,Em) رو پیدا کنید باید عنصر اول یعنی E1 رو در تعداد عناصر در تمامی بعدها به غیر از بعد اول صرب می کنیم و دومین عنصر یعنی E2 رو در تعداد عناصر موجود در تمامی ابعاد به جز دو بعد اول ضرب می کنیم (از X3 تا اخر) و در نهایت با Em جمع کرده و حاصل کل رو در سایز اون نوع ضرب کرده و با ادرس شروع جمع می کنیم.