روزنوشته

مثلث

در مثلث مجموع هر دو ضلع، بزرگتر از ضلع سوم است. در مثلث هر ضلع، بزرگتر از تفاضل بین دو ضلع دیگر است. 

  • مهدی رضوی

سلام یکی از مهمترین مباحث الگوریتم و برنامه نویسی داینامیک هستش و کلا چیز مهمیه به قول یکی از اساتید المپیاد کامپیوتر دانش آموزی دانشگاه جورجیا تک آمریکا "داینامیک آنقدر برای طراح اونجا مهم بوده از 8 تا سوال برنامه نویسی 6 تا داینامیک بوده کلا عاشق داینامیک بوده!! ".

اول باید دید که داینامیک اصلا چیست؟ داینامیک حل یک مسئله برنامه نویسی با یک رابطه ی بازگشتی است در واقع شما سعی می کنید استقرا بزنید سعی می کنید که حل مسئله برای رو از روی بدست بیارید.

اگر تشخیص دادید که یه مسئله دینامیک هست (کار ساده ای نیست) باید سه مرحله رو بگزرانید تا مسئله رو حل کنید:

1 .DP state رو حدس بزنید در واقع بیایید اون آرایه ای که می خواهید در اون اعضای دنباله ی بازگشتی رو ذخیره کنید رو تعریف کنید. مثلا بعضی وقتا یک بعدیه بعضا دو بعدی و ...

2 . حالت پایه رو بدست آورید یعنی جواب سوال رو برای 0 یا 1 و ...

3 . ضابطه ی دنباله ی بازگشتی رو بدست آورید کار سختیه اما با تمرین زیاد سختیش میاد پایین ولی هیچ وقت راحت نمیشه!

نکته ی مهم و اساسی : توی یه سوال اگه خواستید داینامیک بزنید باید ببنید که چیزی داره تکرار میشه حالا تو سوالات بهتر این پدیده رو خواهید دید.

تو این سوال می خوام 10 تا سوال !! مطرح کنم که شامل سوالات معروف و .. داینامیک هستند:

1 . n امین عدد دنباله ی فیبوناچی را بدست آورید (خیلی خیلی ساده)

2 . n را از ورودی بگیر و تعداد راهای نوشتن آن با اعداد 1 و 3 و4 را بدست آورید (ساده) مثلا عدد 5 را می توان به 5 روش نوشت.

3 . دنباله ای داریم از n عدد صحیح (مثبت و منفی) بزرگترین زیر آرایه متوالی با بیشرترین مجموع را بیابید.(ساده و معروف)

4 . دنباله ای داریم از n عدد صحیح (مثبت و منفی) طول بزگترین زیر دنباله ی صعودی را بیابیید.(ساده و معروف)

5 . فردی دارای n نوع سکه است و می خواهد اسکناس k تومانی خود را با این سکه ها خرد کند. کمترین تعداد سکه های لازم را بیابیید. ابتدا n را دریافت کرده و سپس n نوع سکه را دریافت کرده و k را دریافت کنید.(ساده و معروف)

6 . تعداد راهای پوشاندن یک جدول در 3 را با دومینو را بیابیید .(POJ 2663 ) (متوسط ) یک حالت برای n=12image description

7 . مسئله ی کوله پشتی : n شئ داریم با وزن های متفاوت و با ارزش های متفاوت و یک کیف که دارای ظرفیت k کیلو است می خواهیم تعدادی از این اشیا را ورداریم که وزن آن از ظرفیت کیف بیشتر نشود و مجموع ارزش بیشینه شود.(متوسط و معروف)

8 . مثلثی مانند شکل زیر داریم که دارای n لایه است می خواهیم مسیری از قله ی مثلث تا پایین انتخاب کنیم که مجموع اعداد آن بیشینه شود آن عدد را چاپ کنید.(شکل) هر عدد می تواند به دو عدد مجاور خود برود.ابتدا n را دریافت و مثلث را دریافت کنید.(شبیه به سوال 3 مرحله 3 دوره ی 23 روز دوم که 40 امتیازی از 100 امتیاز رو تشکیل می داد)(متوسط)image description

9 . مجموعه ای داریم از n عضو تعداد زیر مجموعه های از آن که مجموع اعضای آن برابر با c باشدرا بیابیید.(متوسط به بالا)

10 . در یک کشور که دارای 2n شهر است و دارای یک رود می باشد متاسفانه این رود از وسط کشور رد شده است به گونه ای که n شهر در یک طرف و n شهر دیگر در طرف دیگر قرارگرفته است به همین دلیل رئیس جمهور آن کشور تصمیم گرفته که بین مجموعه ی A , B از شهرها پل احداث کنیم . هر شهر فقط می تواند با شهری پل داشته باشد که با آن هم جمعیت باشد . هر شهر می تواند با شهر دیگر پل داشته اگر با پلی دیگر برخورد نکند. حداکثر این کشور چند پل می تواند داشته باشد.ابتدا n را دریافت کن سپس دو دنباله ی n عضوی از جمعیت شهر های A و B دریافت کن که جمعیت شهرهای A و B را به ترتیب در آن دو دنباله دارد.نکته : میدانیم هر شهر در پایین با یک شهر با بالا هم جمعیت است.حداکثر چند پل می تواند احداث شود.(متوسط)

  • مهدی رضوی

art of programring

participated  شرکت

organizer تنظیم کننده

arranging سامان دادن

Foreword پیش گفتار

responsible مسئولیت

recollection خاطره

tutorials آموزش

author نویسنده

prefaceمقدمه

essential ضروری

sections بخش

scattered پراکنده

newcomers تازه واردان

proves ثابت میکند

tips نکات

considered در نظر گرفته

experience تجربه

manual کتابچه راهنما

interesting جالب هست

classification تقسیم بندی

categoriesدسته بندی ها

detail جزئیات


  • مهدی رضوی

زبان

1104

several چند

specifying تعیین

Howeverبا این حال 

1185

skewانحراف

decimalاعشاری

expressed ابراز

represents نشان دهنده

multiple چندین

least کمترین

significant قابل توجه

useful مفید

current problemمشکل فعلی،مشکل جاری

carryحمل

each of which هر یک از انها

otherwiseدر غیر اینصورت

equivalentمعادل

1099

Bricks اجر

upon بر

sameیکسان

retorts جواب متقابل دادن

rearrange تنظیم مجدد

1088

Saturnزحل

crew خدمه

stasis حالت سکون

awakeبیدار

strangelyعجیب

even حتی

released منتشر شد

popularمحبوب

became شد

discussion بحث

actually در واقع

meant به معنای

Heuristic ALgorithmالگوریتم ابتکاری 

abbreviation مخفف

explanation توضیح

replace جایگزین کردن

successor جانشین

acronyms کلمات اختصاری

related مربوط

1208

reversal معکوس

multiple چندین

indicated نشان داد

descriptionشرح

indicating نشان میدهد

1228

infinityبینهایت

actually درواقع

yield بازده

accurate دقیق

1230

root ریشه

resulting نتیجه

continued ادامه یافت

obtain بدست اوردن

consider درنظر گرفتن

yields حاصل،محصول

Since از انجا که

separate جداگانه

1959

Given داده

determine تعیین کردن

least کمترین

alternativelyمتناوبا

representing نمایندگی

task وظیفه

1353

figure شکل

respectively به ترتیب

pattern الگو

coordinates مختصات

1266

representation نمایندگی

significant قابل توجه

Task وظیفه

which for each که برای هر

binary representation نمایش دودویی

equal برابر

increasing افزایش

sequence توالی

separated جدا ازهم

2703

abnormal غیر طبیعی

participating شرکت کننده

common مشترک

common method روش متداول

combination ترکیب

 initials of team حروف اول از تیم

instance مثال

Instead به جای

stylish خوش استیل

further بیشتر

middle وسط

Thereforeاز این رو

Note توجه داشته باشید

fixed ثابت

unique منحصربه فرد

Given داده،معین،معلوم

lowercase حروف کوچک

guaranteed تضمین

2212

frosh جدید الورود

expect انتظار

provide ارائه

reality واقعیت

percentage  درصد

2090

devised ابداع

encryption رمزگذاری

technique تکنیک

generated تولید

clever باهوش





  • مهدی رضوی

intentionally از قصد،عمدا

blank جای خالی 

extraordinaryخارق العاده

exciting هیجان انگیز

developments تحولات

hierarchyسلسه مراتب

leading  پیشرو  منتهی شد

environment محیط

Introduction معرفی

Organization سازمان




  • مهدی رضوی

عدد اول

int num;
boolean isPrime;
num = 14;
if(num < 2) isPrime = false;
else isPrime = true;
for(int i=2; i <= num/i; i++) {
if((num % i) == 0) {
isPrime = false;
break;
}
}
  • مهدی رضوی

ارایه

دو تا حلقه ساده برا ارایه ها ولی نکته جالبی دارن:

class TwoDAgain {

public static void main(String args[]) {

int twoD[][] = new int[4][];

twoD[0] = new int[1];

twoD[1] = new int[2];

twoD[2] = new int[3];

twoD[3] = new int[4];

int i, j, k = 0;

for(i=0; i<4; i++)

for(j=0; j<i+1; j++) {

twoD[i][j] = k;

k++;

}

for(i=0; i<4; i++) {

for(j=0; j<i+1; j++)

System.out.print(twoD[i][j] + " ");

System.out.println();

}

}

}





class TwoDArray {

public static void main(String args[]) {

int twoD[][]= new int[4][5];

int i, j, k = 0;

for(i=0; i<4; i++)

for(j=0; j<5; j++) {

twoD[i][j] = k;

k++;

}

for(i=0; i<4; i++) {

for(j=0; j<5; j++)

System.out.print(twoD[i][j] + " ");

System.out.println();

}

}

}


  • مهدی رضوی

منطق فازی

با مفهموم صفر و یک که آشنا هستین؟!

هر بیت میتونه ارزش درست یا غلط(یک یا صفر)داشته باشه

و بیت ها کنار  هم مفاهیم جدیدی ایجاد میکنن که میشه شالوده کامپیوتر

با همین صفر و یک کار های خیلی بزرگی انجام شده ولی دراین منطق همه چیز یا درسته یا غلط یا سفیده یا سیاه و چیزی بین اینها وجود نداره

سال 1965 یک دانشمند برق ایرانی تبار نظریه منطق فازی رو مطرح میکنه.مثلا اگه صفر رو معادل نریم و یک رو معادل بریم در نظر بگیریم طبق منطق فازی حالت های میان فازی هم میتونه وجود داشته باشه مثلا:احتمالا بریم،اگر بارون بیاد نریم و .....

و این باعث تحول عجیبی شد

طبق منطق قدیم مثلا میگفتن کسی که بالای 180سانت قد داره قد  بلند هست(یک)وکسی که زیر 180 سانت هست قدکوتاهه(صفر)و مثلا یه 179 سانتی کوتاه حساب میشد اما  طبق منطق فازی هر کدوم از اینا جایگاه خودشونو دارن

توی هوش مصنوعیو نرم افزار نویسی هم خیلی کاربردیه

+بعدا کامل میشه


  • مهدی رضوی

تابع بازگشتی

چند روزه قفلم رو این موضوع

برا یک بار باید کلکشو بکنم و خلاص

+پست اپدیت میشود

توابع بازگشتی یا Recursion 

  • مهدی رضوی

1

احتمال خیلی زیاد اینجا بشه یه وبلاگ در مورد رشتم که البته شاید فقط برا خودم کارایی داشته باشه

هدف اصلیمم مسابقات acm هست

به نوعی شاید اینجا یه روزشمار باشه تا روزمسابقات اصلی

تازه دیروز ترم تابستونیم تموم شده و تقریبا بیست روز فرصت دارم با زمان زیاد در روز سوالات مسابقه رو پیگیری کنم ولی بعدش درسای دانشگاه شروع میشه

توی فهم سوالات یکم مشکل دارم که فکر میکنم مشکل از نحوه بیان اوناست:|

ولی باید یه زمانی بگذره تا پیشرفت کار رو بررسی کنم

  • مهدی رضوی