سلام.
به نظر بنده، این روش که ماکزیمم مقدار هر ردیف را پیدا کرده و سپس بر اساس آنها، ردیف ها را جابجا کنیم، اشتباه است. زیرا هیچ تضمینی نیست که حتما ماکزیمم مقدار برای جمع عنصرهای قطر به وجود بیاید.
براتون مثال می زنم :
نتیجه اجرای کد متلب بالا :
ماتریس your_method بر اساس روش پیشنهادی شما تعیین شده و در واقع، عدد 12 ما را فریب داده و ردیف مربوط به آن را طوری قرار داده ایم که عدد 12 در قطر قرار بگیرد، در صورتیکه یک حالت بهتر را در ماتریس best نمایش داده ایم. بنابراین مشاهده می کنید که این روش، منطق ریاضی ندارد.
توصیه بنده این است یا با کدنویسی (حلقه های for) کلیه حالت ها برای چیدمان ردیف ها را ساخته و ببینید کدامیک ماکزیمم می شود یا با یک دانشجوی رشته ریاضی مشورت کنید و ببینید یک روش ریاضی برای این نوع مسائل سراغ دارد یا خیر (که مجبور نشوید تمام حالت ها را بسازید).
به نظر بنده، این روش که ماکزیمم مقدار هر ردیف را پیدا کرده و سپس بر اساس آنها، ردیف ها را جابجا کنیم، اشتباه است. زیرا هیچ تضمینی نیست که حتما ماکزیمم مقدار برای جمع عنصرهای قطر به وجود بیاید.
براتون مثال می زنم :
کد پیاچپی:
clear all
close all
clc
A=[1 2 3; 0 0 11; 10 11 12]
your_method=[A(2,:); A(1,:); A(3,:)]
best=[A(3,:); A(1,:); A(2,:)]
نتیجه اجرای کد متلب بالا :
کد پیاچپی:
A =
1 2 3
0 0 11
10 11 12
your_method =
0 0 11
1 2 3
10 11 12
best =
10 11 12
1 2 3
0 0 11
ماتریس your_method بر اساس روش پیشنهادی شما تعیین شده و در واقع، عدد 12 ما را فریب داده و ردیف مربوط به آن را طوری قرار داده ایم که عدد 12 در قطر قرار بگیرد، در صورتیکه یک حالت بهتر را در ماتریس best نمایش داده ایم. بنابراین مشاهده می کنید که این روش، منطق ریاضی ندارد.
توصیه بنده این است یا با کدنویسی (حلقه های for) کلیه حالت ها برای چیدمان ردیف ها را ساخته و ببینید کدامیک ماکزیمم می شود یا با یک دانشجوی رشته ریاضی مشورت کنید و ببینید یک روش ریاضی برای این نوع مسائل سراغ دارد یا خیر (که مجبور نشوید تمام حالت ها را بسازید).
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.