تور لحظه آخری
امروز : یکشنبه ، 20 آبان 1403    احادیث و روایات:  امام محمد باقر(ع):دانشمندی که از علمش سود برند ، از هفتاد هزار عابد بهتر است .
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

چراغ خطی

 






آمار وبسایت

 تعداد کل بازدیدها : 1827952183




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

ماتريس هاي اسپارس و نوشتن برنامه هاي آنها


واضح آرشیو وب فارسی:سایت ریسک: array_matrix27-10-2005, 02:13 PMol: در زبان پاسکال برنامه ای بنویسید که :جمع و تفریق دو ماتریس اسپارس را انجام دهد. (باید در ابتدا ماتریس ها را از روش نامنظم تبدیل به ماتریس های بدون صفر کند و سپس اینکار را انجام دهد.) قبلا از پاسخ سریع شما تشکر می کنم poldarmisham17-06-2007, 10:52 PMدر مورد ماتریس اسپارس نیاز به مطلب دارم. البته برنامه های این ماتریس را دارم فقط در مورد خود این ماتریس اطلاعات میخوام ممنون میشم اگه کمک کنید barajini18-06-2007, 12:51 AMman koja chejori algoritmhaye barnamehaye sakhteman dade ro peyda konam komaaaaaaaaaaaaaaaak rezapazahr25-06-2007, 02:16 AMسلام من تا حدودي با ماتريس اسپارس آشنايي دارم ماتريس اسپارس ماتريسيه كه داده هاي معتبر (داده معتبر همون 1 است) در اون قرار ميگيرن اما سئوال: اساسا اين ماتريس بدرد چي ميخوره ؟ براي پاسخ به اين سئوال اول اين سئوال رو بايد جواب دادكه: مگه كلا از يه ماتريس براي چه كارهايي استفاده ميكردن؟خوب معلومه براي ذخيره موقتي يه سري داده ها داده هايي كه ازش صحبت ميكنيد چه داده هايي هستن؟ هر مجموعه داده كه قراره مورد پردازش قرار بگيرن ميتونه منظور ما باشه ولي قطعا بايد تعداد داده هاي غير معتبرش خيلي بيشتر از داده هاي معتبرش باشن تا اجازه ورود به ماتريس اسپارس رو داشته باشن. براي اينكه مطلب بهتر جا بيفته يك مثال ميزنم : فرض كنيد از شما بخوان اطلاعات يه برگه a 4 رو كه تنها يه خط كوچيك توش كشيده شده رو وارد رايانه كنيد قطعا شما براي اينكار از ساختمان داده ماتريس دو بعدي براي قرار دادن و ذخيره كردن اطلاعات برگه استفاده ميكنيدكه اون ماتريس بايد ماتريس اسپارس باشه (منظور از دادههاي برگه اينه كه اگه ما صفحه برگه رو يه ماتريس دو بعدي فرض كنيم داده هاي معتبر اون نقاطي هستن كه با قلم شما سياه شدن و تشكيل به خط تو اون صفحه دادن.پس هر نقطه يه داده معتبره تو اون صفحس كه در كنار بيشمار داده غير معتبر قرار گرفته (نقاط سفيد دست نخورده)(كه تو رايانه داده معتبر 1 وداده غير معتبر0 معرفي ميشه)) اما چرا از ماتريس دو بعدي معمولي براي ذخيره سازي داده ها استفاده نميكنيم؟ چون ماتريس دو بعدي معمولي توش هم داده معتبر و هم داده غير معتبر قرار ميگيره (اگه برگرديم به همون مثالي كه زدم داده هاي بيشمار غير معتبر 0 و دادههاي اندك 1 مال برگه آ4 تو اين ماتريس قرار خواهند گرفت)كه همان طور كه ميدانيم داده هاي غير معتبر رو دليلي نداره تو پردازش هايي كه قراره بعدا با دادهاي ماتريس داريم شركت بديم(به دليل اتلاف وقت و حافظه اي كه اين داده هاي غيرمعتبر تو پردازش هامون دارن) پس از اون جاييكه روز به روز الگوريتم هاي بهينه(الگوريتم هايي كه سريعتر اجرا ميشن و كمتر فضا اشغال ميكنن)جاي الگوريتم هاي قبلي رو ميگيرن پس به جاي نگه داري داده ها از ماتريس اسپارس به جاي ماتريس دو بعدي معمولي استفاده ميكنيم تكرار ميكنم كه : از اين ماتريس زماني استفاده ميشه كه داده هاي غير معتبرت خيلي بيشتر از داده هاي معتبرت باشن يعني اگه از ما سئوال كردن از چه ساختمان داده اي براي نگه داري داده هاي يه عكس(كه بسيار داده معتبر داره) استفاده بايد كرد ؟ ميگيم ماتريس دو بعدي نه ماتريس اسپارس چرا كه داده هاي غير معتبر يه عكس خيلي بيشتر از داده هاي معتبرش نيست كه بياييم از ماتريس اسپارس استفاده كنيم. اما اين سئوال پيش مياد كه ساز وكار ماتريس اسپارس چيه؟ جواب:اين ماتريس مياد جاي اون داده معتبر رو پيدا ميكنه (سطر وستون داده هاي معتبر رو)به همراه مقدار داده (كه ميتونه 1 باشه يا هر عددي باشه)و سطر و ستون ومقدار اون داده رو تو خودش قرار ميده نكته: اين ماتريس سه ستون داره و به تعداد داده هاي معتبر سطر داره . باز براي روشنتر شدن مطلب به مثال خودمان بر ميگرديم براي قرار دادن داده هاي برگه آ4 ماتريس اسپارس مياد سطر و ستون داده معتبر رو پيدا ميكنه و به همراه خود داده مياد و اون ها رو به ترتيب داخل سطر اول ستون اول و سطر اول و ستون دوم و سطر اول ستون سوم خودش قرار ميدهدو باز براي داده بعدي سطر و ستون و خود داده بعدي رو به ترتيب تو سطر دوم ستون اول و سطر دوم ستون دوم و سطر دوم ستون سوم قرار ميدهد وبراي داده هاي بعدي هم همين كار ها رو انجام ميدهد تا كليه داده ها وارد رايانه شوند اما پياده سازي الگوريتم ماتريس اسپارس: كافيست حلقه اي در برنامه مان قرار داده وتو اون هر بار يه داده رو از ماتريس دو بعدي اي كه قبلا از كاربر گرفته شده بگيريم وسطر وستون و خود داده رو تو ماتريس اسپارسي كه از قبل به تعداد سه ستون و به تعداد مورد نظر داده ها سطردار براي سيستم تعريف كرده ايم قرار دهيم و اين حلقه رو تا زماني تكرار كنيم كه ديگر داده اي در ماتريس از قبل پر شده نداشته باشيم اما اين سئوال پيش مياد كه اون ماتريسي اسپارسي كه قراره وسط برنامه تعداد سطراش مشخص بشه چطور اول برنامه تعداد سطراشو براي سيستم معرفي كنيم؟(نميشه بگيم ماتريسمون يه سطر يا دو و يا فلان مقدار سطر داره چرا كه برنامه مان بايد جامع باشه (نه فقط براي حالات خاص اجرا بشه) ونيز نميتونيم بگيم ماتريسمون n تا سطر داره چرا كه وقتي كامپايلر(مفسر) به n رسيد ميگه n ديگه چيه؟(چون هميشه جاي مقدار سطر عدد قرار ميگيره نه متغير)) پس براي رفع اين مشكل چه كار بايد كرد؟ كافيست از تابع malloc براي اينكار استفاده كنيد تا مشكل حل بشوديعني بنويسيم: ((new= (int*)malloc(sizeof(int* (البته در زبان c) كه خود اين تابع مياد به تعداد سطر هاي مورد نياز برنامه از سيستم حافطه ميگيره و مشكل مشخص نبودن تعداد سطرهاي ماتريس اسپارس رو برامون حل ميكنه انشاءالله از مطالبي كه براتون نوشتم راضي بوده باشيد. اگه باز با مشكلي برخورديد باهام در ميون بذاريد. ياحق. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2989]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن