PDA

View Full Version : سوال: تابعی جهت جمع دو ماتریس اسپارس,که به روش 3 ستونی ذخیره شده باشد



stahad1
جمعه 30 مهر 1389, 22:19 عصر
اگر جواب را بلد هستید ما را هلپ کنید

مسعود اقدسی فام
جمعه 30 مهر 1389, 22:46 عصر
روش بهینه منظوره یا هر چی که شد؟

به هر حال می شه یه کد کلی - بدون در نظر گرفتن بهینگی - نوشت که ماتریسهای اسپارس رو جمع بزنه.

Salar Ashgi
شنبه 01 آبان 1389, 00:25 صبح
Help خالی = درخواست کد = خلاف قوانین سایت

روشنه ؟!

stahad1
شنبه 01 آبان 1389, 17:18 عصر
باشه ببخشید یه راهنمای کنید ما هم اینا را یاد بگیریم

مسعود اقدسی فام
شنبه 01 آبان 1389, 18:19 عصر
باشه ببخشید یه راهنمای کنید ما هم اینا را یاد بگیریم

جمع دو ماتریس اسپارس لزوما اسپارس نیست.

اگه حاصل جمع رو ماتریس معمولی (با همه سطرها و ستون‌ها) در نظر بگیریم، تکلیف کاملا مشخصه و پیاده‌سازی چندان پیچیده‌ای نداره.

اما اگه فرض بگیریم - و یا مطمئن باشیم - که حاصل جمع همچنان اسپارس خواهد بود، می‌شه از روشی مثل روش مرتب‌سازی ادغام برای ادغام کردن سطرهای جداول مربوط به دو تا ماتریس استفاده کرد.
در روش مرتب‌سازی ادغام هم بعد از مرتب کردن دو زیرآرایه، با یه تابع ادغام اونها رو یکجا جمع می‌کنیم. اینجا هم دو جدول داریم که اول بر اساس ستون اول (یعنی شماره سطرها)، و بعدا بر اساس ستون دوم (یعنی شماره ستون‌ها) مرتب هستن. حین ادغام این دو جدول، اگه به سطرهایی برخوردیم که سطر و ستون یکسانی داشتن، اونها رو جمع می‌زنیم، در غیر اینصورت خودشون رو ثبت می‌کنیم.