Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
SABB گفت
[center:a0d75aeee5]5×3
(مساله های الگوریتمی-67)
دونفر بازی زیر را روی توده ای از چوب کبریت ها انجام می دهند:
بازیکن ها به ترتیب تعدادی از چوب کبریت ها را بر می دارند. هر بازیکن در نوبت خود اگر فقط یک چوب کبریت مانده باشد آن را برمی دارد و اگر بیشتر از یکی باشد، می تواند حداکثر به اندازه نصف چوب کبریت های باقی مانده بردارد. کسی که آخرین چوب کبریت را بردارد بازنده است.
برنامه ای بنویسید که n را گرفته، مشخص کند چه کسی استراتژی برد دارد، سپس به جای کسی که استراتژی برد دارد با کاربر بازی کرده و برنده شود.​
[/center:a0d75aeee5]
چجوري بايد با كاربر بازي كنه؟!!؟!
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
Olympiad گفت
SABB گفت
[center:fffdd3fa5f]5×3
(مساله های الگوریتمی-67)
دونفر بازی زیر را روی توده ای از چوب کبریت ها انجام می دهند:
بازیکن ها به ترتیب تعدادی از چوب کبریت ها را بر می دارند. هر بازیکن در نوبت خود اگر فقط یک چوب کبریت مانده باشد آن را برمی دارد و اگر بیشتر از یکی باشد، می تواند حداکثر به اندازه نصف چوب کبریت های باقی مانده بردارد. کسی که آخرین چوب کبریت را بردارد بازنده است.
برنامه ای بنویسید که n را گرفته، مشخص کند چه کسی استراتژی برد دارد، سپس به جای کسی که استراتژی برد دارد با کاربر بازی کرده و برنده شود.​
[/center:fffdd3fa5f]
چجوري بايد با كاربر بازي كنه؟!!؟!
مثلا این جوری: (تو هر خط هر چی بعد از ؟ هست رو کاربر وارد کرده).
کد
Enter n? 4
The 1st player has a winning strategy.
I take 1 match(es)
Number of remaining ones= 3
How many matches do you take? 1
Number of remaining ones= 2
I take 1 match(es)
Number of remaining ones= 1
How many matches do you take? 1
Number of remaining ones= 0
I Won!
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
مجبورم خودم کدشو بذارم.
لطفا تذارین تاپیک بره صفحه بعد

کد
#include<iostream.h>
#include<conio.h>
int main()
{
    int i=1,j,n,winning_strategy[100];
    winning_strategy[1]=2;
    cout<<"Enter n:";
    cin>>n;
    while(i<=n)
    {
			if(winning_strategy[i]==2)
								 for(j=i+1;j<=2*i;j++)
								    winning_strategy[j]=1;
			i=j;
			winning_strategy[i]=2;
    }
    if(winning_strategy[n]==1)
    {
	  cout<<"The 1st player has a winning strategy.";
	  while(n>0)
	  {
			  for(i=n-1;winning_strategy[i]!=2;i--) {}
			  cout<<"\nI take "<<n-i<<" match(es).";
			  n=i;
			  cout<<"\nThe number of remaining ones= "<<n;
			  cout<<"\nHow many matches do u take? ";
			  cin>>i;
			  while(((i>n/2)&amp;&amp;(i!=1))||(i<=0))
			  {
									   cout<<"You Cheater! Enter again! ";
									   cin>>i;
			  }
			  n-=i;
			  cout<<"\nThe number of remaining ones= "<<n;
	  }
    }
    else
    {
	  cout<<"The 2nd player has a winning strategy.";
	  while(n>0)
	  {
			  cout<<"\nHow many matches do u take? ";
			  cin>>i;
			  while(((i>n/2)&amp;&amp;(i!=1))||(i<=0))
			  {
									   cout<<"You Cheater! Enter again! ";
									   cin>>i;
			  }
			  n-=i;
			  cout<<"\nThe number of remaining ones= "<<n;
			  if(n!=0)
			  {
				for(i=n-1;winning_strategy[i]!=2;i--) {}
				cout<<"\nI take "<<n-i<<" match(es).";
				n=i;
				cout<<"\nThe number of remaining ones= "<<n;
			  }
	  }
    }
    cout<<"\nI Won!";
    getch();
    return 1374;
}


 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
خوب این هم اون سوال کاربردی:
برنامه ای بنویسید که یک چند جمله ای از ورودی گرفته و آن را تجزیه کند. (تضمین شده چند جمله ای ورودی ریشه صحیح دارد)
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
SABB گفت
خوب این هم اون سوال کاربردی:
برنامه ای بنویسید که یک چند جمله ای از ورودی گرفته و آن را تجزیه کند. (تضمین شده چند جمله ای ورودی ریشه صحیح دارد)
فکر کن داری برای بچه های پنجم دبستان توضیح می دی. تجزیه ی چند جمله ای چه طوریه؟ یعنی وقتی یه چند جمله ای بدن بگن تجزیه کن ، چی کار می کنی؟
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
Goharshady گفت
SABB گفت
خوب این هم اون سوال کاربردی:
برنامه ای بنویسید که یک چند جمله ای از ورودی گرفته و آن را تجزیه کند. (تضمین شده چند جمله ای ورودی ریشه صحیح دارد)
فکر کن داری برای بچه های پنجم دبستان توضیح می دی. تجزیه ی چند جمله ای چه طوریه؟ یعنی وقتی یه چند جمله ای بدن بگن تجزیه کن ، چی کار می کنی؟
اون بچه هه کامپیوتره دیگه، نه؟؟
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
بچه هه خودمم. کامپیوتر که خیلی از بچه ی پنجم دبستان نفهمتره. ولی من خودمم نمی دونم تجزیه یعنی چی!!
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
فکر کنم اگه واقعا قرار باشه چند جمله ای رو تجزیه کنه خیلی سخت می شه... نمی دونم چه جوری؟؟!!!؟؟؟
همون به 2 تا پرانتز تجزیه کنه کافیه.
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
SABB گفت
فکر کنم اگه واقعا قرار باشه چند جمله ای رو تجزیه کنه خیلی سخت می شه... نمی دونم چه جوری؟؟!!!؟؟؟
همون به 2 تا پرانتز تجزیه کنه کافیه.
خب همینکار رو چه جوری انجام می دهیم؟ چون من واقعا طریقه ی تجزیه به دو تا را هم نمی دانم. ضمن این که اگه بتونیم به دو تا پرانتز تجزیه کنیم ، بعد به صورت بازگشتی هر کدام از آنها را تجزیه می کنیم.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
Goharshady گفت
SABB گفت
فکر کنم اگه واقعا قرار باشه چند جمله ای رو تجزیه کنه خیلی سخت می شه... نمی دونم چه جوری؟؟!!!؟؟؟
همون به 2 تا پرانتز تجزیه کنه کافیه.
خب همینکار رو چه جوری انجام می دهیم؟ چون من واقعا طریقه ی تجزیه به دو تا را هم نمی دانم. ضمن این که اگه بتونیم به دو تا پرانتز تجزیه کنیم ، بعد به صورت بازگشتی هر کدام از آنها را تجزیه می کنیم.
برای تجزیه به دو پرانتز هم کافی است از این استفاده کنیم که اگر ریشه برابر a باشد آن گاه چند جمله ای بر x-a بخشپذیر است.
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
SABB گفت
Goharshady گفت
SABB گفت
فکر کنم اگه واقعا قرار باشه چند جمله ای رو تجزیه کنه خیلی سخت می شه... نمی دونم چه جوری؟؟!!!؟؟؟
همون به 2 تا پرانتز تجزیه کنه کافیه.
خب همینکار رو چه جوری انجام می دهیم؟ چون من واقعا طریقه ی تجزیه به دو تا را هم نمی دانم. ضمن این که اگه بتونیم به دو تا پرانتز تجزیه کنیم ، بعد به صورت بازگشتی هر کدام از آنها را تجزیه می کنیم.
برای تجزیه به دو پرانتز هم کافی است از این استفاده کنیم که اگر ریشه برابر a باشد آن گاه چند جمله ای بر x-a بخشپذیر است.
می شه بگی چطوری میشه برنامه ای نوشت که یه چند جمله ای رو بر یه چند جمله ای دیگه تقسیم کنه؟
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
خودم هنوز این برنامه رو ننوشتم. یه خورده کار زیاد داره. به نظرم بهتره منصرف شیم!
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
پس منصرف ميشيم!!!!!!!
تجزيه رو خودتون كدشو رو نوشتيد.؟؟؟؟ به نظر خيلي سخت مي آد؟!؟!
اگه ميشه يه سوال ديگه هم بذاريد تا............(نقض قوانين تاپيك...اما اشكال نداره موقعيت اضطراريه!!!!!)
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
اگه برنامه های زیر رو بنویسیم، می تونیم برنامه تجزیه رو هم بنویسیم (البته فقط تجزیه چندجمله ای که ریشه صحیح داشته باشه!)
1- جمع و تفریق چند جمله ای.
2- ضرب دو چند جمله ای.
3- تقسیم دو چند جمله ای.
4- ریشه صحیح گیری چند جمله ای.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
[center:3e195da93e]16
(مساله های الگوریتمی-13): برنامه ای بنویسید که n و سپس نیمه پایین ماتریس مجاورت یک گراف ساده و بدون جهت n راسی را از ورودی (INPUT.TXT) دریافت کرده و در خروجی (OUTPUT.TXT) ابتدا تعداد مولفه های همبندی گراف فوق و سپس در خطوط بعد آن ها را بنویسد. مثلا برای ورودی زیر خروجی می تواند اینگونه باشد:

کد
INPUT.TXT:
8
1
0 0
0 0 0
0 0 0 1
1 1 0 0 0
0 0 0 0 1 0
0 0 0 0 1 0 0

OUTPUT.TXT:
3
1 2 6
3
5 4 8 7
[/center:3e195da93e]
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
SABB گفت
[center:a8c9160abb]16
(مساله های الگوریتمی-13): برنامه ای بنویسید که n و سپس نیمه پایین ماتریس مجاورت یک گراف ساده و بدون جهت n راسی را از ورودی (INPUT.TXT) دریافت کرده و در خروجی (OUTPUT.TXT) ابتدا تعداد مولفه های همبندی گراف فوق و سپس در خطوط بعد آن ها را بنویسد. مثلا برای ورودی زیر خروجی می تواند اینگونه باشد:

کد
INPUT.TXT:
8
1
0 0
0 0 0
0 0 0 1
1 1 0 0 0
0 0 0 0 1 0
0 0 0 0 1 0 0

OUTPUT.TXT:
3
1 2 6
3
5 4 8 7
[/center:a8c9160abb]
اصولا ماتريس مجاورت بايد n*n باشه!!!!بقيه اش كجا هستن!!!؟؟؟؟؟؟
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
Olympiad گفت
SABB گفت
[center:f3e79a3a5b]16
(مساله های الگوریتمی-13): برنامه ای بنویسید که n و سپس نیمه پایین ماتریس مجاورت یک گراف ساده و بدون جهت n راسی را از ورودی (INPUT.TXT) دریافت کرده و در خروجی (OUTPUT.TXT) ابتدا تعداد مولفه های همبندی گراف فوق و سپس در خطوط بعد آن ها را بنویسد. مثلا برای ورودی زیر خروجی می تواند اینگونه باشد:

کد
INPUT.TXT:
8
1
0 0
0 0 0
0 0 0 1
1 1 0 0 0
0 0 0 0 1 0
0 0 0 0 1 0 0

OUTPUT.TXT:
3
1 2 6
3
5 4 8 7
[/center:f3e79a3a5b]
اصولا ماتريس مجاورت بايد n*n باشه!!!!بقيه اش كجا هستن!!!؟؟؟؟؟؟
گفتم که! نیمه پایین ماتریس مجاورتشو بگیره!!
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
SABB گفت
Olympiad گفت
SABB گفت
[center:3e68434746]16
(مساله های الگوریتمی-13): برنامه ای بنویسید که n و سپس نیمه پایین ماتریس مجاورت یک گراف ساده و بدون جهت n راسی را از ورودی (INPUT.TXT) دریافت کرده و در خروجی (OUTPUT.TXT) ابتدا تعداد مولفه های همبندی گراف فوق و سپس در خطوط بعد آن ها را بنویسد. مثلا برای ورودی زیر خروجی می تواند اینگونه باشد:

کد
INPUT.TXT:
8
1
0 0
0 0 0
0 0 0 1
1 1 0 0 0
0 0 0 0 1 0
0 0 0 0 1 0 0

OUTPUT.TXT:
3
1 2 6
3
5 4 8 7
[/center:3e68434746]
اصولا ماتريس مجاورت بايد n*n باشه!!!!بقيه اش كجا هستن!!!؟؟؟؟؟؟
گفتم که! نیمه پایین ماتریس مجاورتشو بگیره!!
آهان!!!
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
من تقریبا اصلا نمی دونم ماتریس چیه؟


لطفا هر وقت اومدی؟
خودت حلش کن.


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

[center:ed68818a07]



برنامه ای بنویسید که اعداد x,y که کمتر از 50 هستند را دریافت کند و در خروجی تعداد صفر سمت راست عدد !x را در مبنای y چاپ کند.

مسابقه برنامه نویسی شریف با اندکی تغییر[/center:ed68818a07]​
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
[center:ffe59f4432]16
http://snipt.net/SABB/problem-13/ (راه های ساده تری هم هست، فکر کنم من سخت ترین راه رو رفته باشم!)​
[/center:ffe59f4432]
 
بالا