اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

تاریخچه‌ی ویرایش برای ارسال #3176

پنجشنبه ۲۵ تیر ۱۳۹۴ ارسال شده توسط A.Firouzi

اگه سوالتون رو با یک مثال طرح می‌کردید، کمی درکش راحت‌تر بود. اما تا جایی که متوجه شدم. قصد دارید دو درایه دلخواه در بردار رو با هم جابجا کنید. این کار به سادگی با تعریف یک متغیر جدید به نام swap قابل انجامه

swap = A(r);
A(r) = A(s);
A(s) = swap

اگه جواب مورد نظرتون این نبود، کمی بیشتر درباره سوالتون توضیح بدید تا پاسخ رو تغییر بدم
جمعه ۲۶ تیر ۱۳۹۴ ویرایش شده توسط A.Firouzi

اگه سوالتون رو با یک <b>
پاسخ ویرایش شده:
</b>
فک کنم الان بهتر سوالتون رو متوجه شدم. قصد دارید برای این کار هم راهی که به ذهن خودم میرسه استفاده از دو درایه دلخواه در بردار رو با هم جابجا کنید. این کار به سادگی با تعریف یک متغیر جدید به نام swap قابل انجامه
تا حلقه `for` تو در تو به شکل زیره:
<pre><code>
swap = A(r);
A(r) = A(s);
A(s) = swap
for i=1:n-1
for j=i+1:n
swap = A(i);
A(i) = A(j);
A(j) = swap;
//در این قسمت تابع هدف خود را محاسبه کنید
end
end
</code></pre>
اگه جواب مورد نظرتون این نبود، کمی بیشتر درباره سوالتون توضیح بدید تا پاسخ رو در کد بالا، در حلقه بیرونی ابتدا یک عنصر چرخشی انتخاب میشه و بعد از اون در حلقه درونی این عنصر با بقیه عنصرهای بعد از خودش جا‌به‌جا میشه. طبیعتا با این روش نیازی به بررسی عناصر قبلی در هیچ مرحله‌ای نداریم چون به عنوان مثال طرح می‌کردید، کمی درکش راحت‌تر بود. اما تا جایی اگر بخوایم مقدار تابع هدف رو پس از جابه‌جایی عنصر سوم با عنصر اول به دست بیاریم، این کار رو هنگام بررسی عنصر اول انجام دادیم.
امیدوارم با این تغییر بدمپاسخ تونسته باشم پاسخ سوالتون رو بدم، اگر هم هنوز نکته مبهمی هست، بفرمایید.