سلام
من خیلی از منابع هارو نگاه کردم تا نحوه ی صرفه جویی حافظه تو ماتریس های یک قطری و سه قطری رو پیدا کنم ولی چیزی پیدا نکردم
از دوستان کسی فرمول تبدیل این ماتریس هارو میدونه؟
لطفا اگه اطلاعاتی در این مورد دارید هم حالت سطریشو بگید و هم ستونیشو
ممنون
سلام.در ماتریس ۳ قطری [tex]A\: [1..n\: ,\: 1..n\: ][/tex] اگه بخوایم عناصر اونو تو آرایه یک بعدی [tex]B\: [1\: ..\: 3n-2\: ][/tex] ذخیره کنیم.
۱-اگه به روش سطری ذخیره کنیم--> [tex]A\: [i\: ,\: j\: ]\: =\: B\: [2i j-2\: ][/tex] (به شرطی که [tex]A\: [i\: ,\: j\: ][/tex] غیر صفر باشد.یعنی [tex]|i-j|\le1[/tex] )
۲-اگه به روش ستونی ذخیره کنیم --> [tex]َA\: [i\: ,\: j\: ]\: =\: B\: \: [2j i-2\: ][/tex] ( به شرطی که [tex]َA\: [i\: ,\: j\: ][/tex] غیر صفر باشد.یعنی [tex]|i-j|\le1[/tex] )
برای ذخیره ماتریس یک قطری [tex]A\: [1..n\: ,\: 1..n\: ][/tex] در یک آرایه یک بعدی [tex]B\: [1..n\: ][/tex] داریم:
[tex]A\: [i\: ,\: j\: ]\: =\: B\: [i\: ]\: or\: A\: [i\: ,\: j\: ]\: =\: B\: [j\: ][/tex] به شرطی که [tex]A\: [i\: ,\: j\: ][/tex] غیر صفر باشد،یعنی [tex]i=j[/tex] باشد.
امیدوارم سوالتون همین بوده باشه.
(30 آذر 1394 10:39 ب.ظ)IranianWizard نوشته شده توسط: [ -> ]سلام.در ماتریس ۳ قطری [tex]A\: [1..n\: ,\: 1..n\: ][/tex] اگه بخوایم عناصر اونو تو آرایه یک بعدی [tex]B\: [1\: ..\: 3n-2\: ][/tex] ذخیره کنیم.
۱-اگه به روش سطری ذخیره کنیم--> [tex]A\: [i\: ,\: j\: ]\: =\: B\: [2i j-2\: ][/tex] (به شرطی که [tex]A\: [i\: ,\: j\: ][/tex] غیر صفر باشد.یعنی [tex]|i-j|\le1[/tex] )
۲-اگه به روش ستونی ذخیره کنیم --> [tex]َA\: [i\: ,\: j\: ]\: =\: B\: \: [2j i-2\: ][/tex] ( به شرطی که [tex]َA\: [i\: ,\: j\: ][/tex] غیر صفر باشد.یعنی [tex]|i-j|\le1[/tex] )
برای ذخیره ماتریس یک قطری [tex]A\: [1..n\: ,\: 1..n\: ][/tex] در یک آرایه یک بعدی [tex]B\: [1..n\: ][/tex] داریم:
[tex]A\: [i\: ,\: j\: ]\: =\: B\: [i\: ]\: or\: A\: [i\: ,\: j\: ]\: =\: B\: [j\: ][/tex] به شرطی که [tex]A\: [i\: ,\: j\: ][/tex] غیر صفر باشد،یعنی [tex]i=j[/tex] باشد.
امیدوارم سوالتون همین بوده باشه.
سلام ممنون از لطفتون
این فرمول فقط تو حالتی قابل اجراست که اندیس شروع یک باشه
مثلا تو زبان سی دیگ عمل نمیکنه