ببخشید میشه یکم بیشتر توضیح بدید من این فرمولا رو گیچ شدم
اطلاعاتی که خودم دارمو می نویسم اگه می شه برام توضیح بدید
تصویر زیر رو ببینید، این یک ماتریس بالا مثلثی 4 در 4 است، یعنی n = 4
طبق فرض مساله ما صرفا مقادیر غیر 0 رو ذخیره می کنیم، یعنی A و B و C و ... و J (مقادیر 0 رو در آرایه تک بعدی
قرار نمی دهیم) :
حالا شما بایستی فرمولی را بنویسید که شماره خانه در آرایه یک بعدی را از روی مقادیر سطر i و ستون j و
ابعاد ماتریس n بدست بیاورد، یعنی شما مقادیر i و j و n را به عنوان معلوم دارید و بایستی مجهول x را بدست بیاورید.
x = i * n - (i * i - i) / 2 + j - i
کدش هم در زبان C فرق خاصی با زبان های دیگه نداره، فرمول و کدش فرقی نداره، همینه که نوشتم.
اینم یک ماتریس پایین مثلثی :
طبق فرض مساله ما صرفا مقادیر غیر 0 رو ذخیره می کنیم، یعنی A و B و C و ... و J (مقادیر 0 رو در آرایه تک بعدی
قرار نمی دهیم) :
حالا شما بایستی فرمولی را بنویسید که شماره خانه در آرایه یک بعدی را از روی مقادیر سطر i و ستون j و ابعاد
ماتریس n بدست بیاورد، یعنی شما مقادیر i و j و n را به عنوان معلوم دارید و بایستی مجهول x را بدست بیاورید.
x = (i * i + i) / 2 + j
هر دو فرمولی که نوشتید به ظاهر اشتباه است.
دقت کنید که i * i + i) / 2 + j) با i * i + i / 2 + j فرق دارد و یکی نیست، اگر پارانتز ها را حذف کنید، فقط مقدار i بر
2 تقسیم می شود که ممکن است حاصل یک اعشاری مثل 1.5 باشد. بایستی مجموع i * i و i بر 2 تقسیم شوند.
اینها صرفا فرمول ریاضی هستند و با کد شان فرقی ندارند، الگوریتم خاصی نیاز نیست که کد چند سطری برایشان
بنویسید.