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

تبلیغات

تبلیغات متنی

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

صرافی rkchange

سایبان ماشین

دزدگیر منزل

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

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

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

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

موسسه خیریه

واردات از چین

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

ناب مووی

دانلود فیلم

بانک کتاب

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

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

irspeedy

درج اگهی ویژه

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

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

قیمت فرش

درب فریم لس

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

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

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

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

خرید فالوور

پوستر آنلاین

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

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

خرید از چین

خرید از چین

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

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

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

دوره آموزش باریستا

مهاجرت به آلمان

بهترین قالیشویی تهران

بورس کارتریج پرینتر در تهران

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

نوار اخطار زرد رنگ

ثبت شرکت فوری

تابلو برق

خودارزیابی چیست

فروشگاه مخازن پلی اتیلن

قیمت و خرید تخت برقی پزشکی

کلینیک زخم تهران

خرید بیت کوین

خرید شب یلدا

پرچم تشریفات با کیفیت بالا و قیمت ارزان

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

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

پارتیشن شیشه ای

اقامت یونان

خرید غذای گربه

رزرو هتل خارجی

تولید کننده تخت زیبایی

مشاوره تخصصی تولید محتوا

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

تور بالی نوروز 1404

سوالات لو رفته آیین نامه اصلی

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



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

درخواست توضیح چند خط برنامه -


واضح آرشیو وب فارسی:سایت ریسک: درخواست توضیح چند خط برنامه yasi93 27 دي 1387, 10:55میشه این چند خط برنامه که از برنامه هشت وزیر گرفته شده را توضیح دهید بیشتر نمیفهمم که k[p++][q++]-- و قسمت های شبیه ان به چه معناست const int m=20; int k[m][m]; int Count=0; int v=0 , n=0 , i=0 , j=0 , state=0; void remove(int i,int j) { int p,q; k[i][j]=0; Count--; for(p=0;p<n;p++) if(p!=i) k[p][j]--; for(p=0;p<n;p++) if(p!=j) k[i][p]--; p=i+1; q=j+1; while(p<n && q<n) { k[p++][q++]--; } p=i-1; q=j-1; while(p>=0 && q>=0) { k[p--][q--]--; } p=i+1; q=j-1; while(p<n && q>=0) { k[p++][q--]--; } p=i-1; q=j+1; while(p>=0 && q<n) { k[p--][q++]--; } the_king 27 دي 1387, 12:49در این الگوریتم برای اینکه خانه هایی که وزیران قادر به پوشش دادن (زدن) هستند مشخص بشه، یک آرایه دو بعدی n در n ایجاد شده. هر بار که یک وزیر به آرایه اضافه میشه، مقدار خونه هایی که می تونه بزنه رو یک واحد افزایش می دهند. بنابر این اگر در خانه ای از این آرایه مقداری مثلا برابر 4 باشه، یعنی 4 وزیر می توانند مهره موجود در آن خانه را بزنند. این تابع ()remove ای که شما قرار دادید، برای برداشتن یک وزیر است صفحه شطرنج است. چون با برداشتن یک مهره وزیر باید تمامی خانه هایی که توسط وزیر مورد نظر پوشش داده می شدند و مقدارشان یک واحد افزایش یافته، مجددا یک واحد کاهش پیدا کند و به مقدار قبلی خود برگردد، یعنی بازگشت به وضعیتی که هنوز وزیر اضافه نشده بود. البته این الگوریتم چندان جالب نیست و خیلی مساله را زیادی پیچیده کرده ولی به هر حال روتین کارش به شرط زیر است : در تشریح الگوریتم اندیس اول آرایه ( i ) را سطر و اندیس دوم آرایه ( j ) را ستون فرض کردم، البته جابجا کردن ایندو تاثیری در کارکرد الگوریتم ندارد. ابتدا مقدار خانه ای که خود وزیر در آن نشسته بود را 0 می کنیم تا آزاد شود، بدیهی است که این خانه توسط هیچ وزیر دیگری پوشش داده نشده، وگرنه اصلا وزیری نمی توانست در آن خانه قرار بگیرد : k[i][j]=0 بدیهی است که تعداد وزیران (متغیر count) هم با برداشتن وزیر یک واحد کاهش می یابد : Count--; یک وزیر می تونه بصورت افقی و عمودی (دو جهت) و 4 جهت فرعی (شمال شرقی، شمال غربی، جنوب شرقی،جنوب غربی) حرکت کنه. پس با 2 حلقه for و 4 حلقه while مقدار خانه های این 6 جهت را یک واحد کاهش می دهیم. جهت اول، افقی، شرط مسیر این است که p برابر i نباشد (p!=i) چون اگر ایندو برابر باشند، دقیقا همان خانه ای است که وزیر مذکور در آن قرار دارد و قبلا مقدار آن خانه را 0 کرده ایم : for(p=0;p<n;p++) if(p!=i) k[p][j]--; جهت دوم، عمودی، شرط مسیر این است که p برابر j نباشد (p!=j) چون اگر ایندو برابر باشند، دقیقا همان خانه ای است که وزیر مذکور در آن قرار دارد و قبلا مقدار آن خانه را 0 کرده ایم : for(p=0;p<n;p++) if(p!=j) k[i][p]--; جهت سوم، جنوب شرقی : p=i+1; q=j+1; while(p<n && q<n) { k[p++][q++]--; } جهت چهارم، شمال غربی : p=i-1; q=j-1; while(p>=0 && q>=0) { k[p--][q--]--; } جهت پنجم، جنوب غربی : p=i+1; q=j-1; while(p<n && q>=0) { k[p++][q--]--; } جهت ششم، شمال شرقی : p=i-1; q=j+1; while(p>=0 && q<n) { k[p--][q++]--; }




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

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

bt

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







-


گوناگون

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


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