PDA

View Full Version : محاسبه ی مقدار تابع



Mega7000
شنبه 19 فروردین 1385, 23:14 عصر
تابع f این ویژگی را دارد:
• F(1)=1
• دنبالهء F(1),F(2),F(3),…. دنباله ای صعودی است که عدد n در آن F(n) بار آمده است.
به عنوان مثال چند جمله اول این دنباله بصورت زیر است:

n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

F(n) 1 2 2 3 3 4 4 4 5 5 5 6 6 6 6

اَرژنگ
یک شنبه 20 فروردین 1385, 10:13 صبح
مقدمه جالبی، حالا اگر n داده بشه ما میخواهیم بدونیم
F(n)=؟

Mega7000
دوشنبه 21 فروردین 1385, 18:28 عصر
بله،
n از ورودی گرفته می شود و باید f(n) را تولید کند.
من هنوز متوجه ء ارتباط n و تابع خروجی نشدم که این اعداد بر حسب چه منطقی تولید می شود؟!

raha_hakhamanesh
دوشنبه 21 فروردین 1385, 20:45 عصر
با سلام
دوست عزیز لازم است بدانید الزاما همه توابع اینچنینی رابطه خاصی ندارند و گاها به سختی می توان برای اینگونه توابع رابطه پیدا کرد ولی اولا متن پیام شما کاملا واضح نیست ولی اگر دنباله نوشته شده مطابق با گفته شما باشد مسلما جمله
(F(n ام
به تعداد
n
بار تکرار شده است و این یعنی جواب .
در غیر اینصورت سوالتان را صریح تر بیان کنید.

اَرژنگ
سه شنبه 22 فروردین 1385, 03:25 صبح
با سلام
دوست عزیز لازم است بدانید الزاما همه توابع اینچنینی رابطه خاصی ندارند و گاها به سختی می توان برای اینگونه توابع رابطه پیدا کرد ولی اولا متن پیام شما کاملا واضح نیست ولی اگر دنباله نوشته شده مطابق با گفته شما باشد مسلما جمله
(F(n ام
به تعداد
n
بار تکرار شده است و این یعنی جواب .

تقریباً ولی نه کاملاً، این جمله فقط خوصیصیتش را بیان میکنه ولی نمیگه که
اگر n داده شده باشه f(n) میشه چی .
منتها این تابع یکمی از تابعهایه دیگر آسانتره، فقط من مطمعن نیستم که دنباله روشه الگریتمی میگردند و یا ریاضی.

Mega7000
سه شنبه 22 فروردین 1385, 17:50 عصر
سلام
این مسئله یکی از سوالات المپیاد هم بوده و جوابش هم هست.اما میخوام راجع بهش بحث بشه
روش الگوریتمی هم داره

Mega7000
شنبه 02 اردیبهشت 1385, 23:27 عصر
سلام

حل شد (:

Mega7000
شنبه 02 اردیبهشت 1385, 23:30 عصر
k=1; f[1]=1; f[2]=2
recieve n from user
for(int i=0;i<=n;i++) f
{
for(int j=0;j<f[i];j++) f
{
f[k]=i
k++;
}
}

mohandese_hiclass
پنج شنبه 07 اردیبهشت 1385, 05:58 صبح
این المپیادارو کجا می گیرن بگو ما هم بریم شرکت کنیم پس این طوری که می بینم اعداد فیبوناتچی سخت ترین سوال آن المپیاده

Mega7000
پنج شنبه 07 اردیبهشت 1385, 10:43 صبح
شما فلن اگه راست می گی همین سوالو می خواستی جواب بدی،المپیاد پیشکشتون!!!

اَرژنگ
پنج شنبه 07 اردیبهشت 1385, 12:00 عصر
با عرضه پوزش از همه، ولی در المپیکه ریاضیات این جواب قابل قبول نیست،
این الگریتم با اینکه درست هست، باید تمامه مقدارات را تا ن حساب کنه، در المپیک جوابی میخوان که ن را یکظربی تحویل بده.
در ضمن اعداد فیبوناچی هم باید بدون حساب کردن تمامه مقدارات تا ن حساب بشند، و اگرچه الان جوابش را همه میدوند، ولی بدون دونستن جواب پیدا کردن فرمولی که مستقیماً مقدار ن را برایه فیباناچی بده همچین آسون نیست و سوالات شبیه به همون را در المپیک میگذارند.

mohandese_hiclass
پنج شنبه 07 اردیبهشت 1385, 15:00 عصر
آره دیگه المپیاد جای شماست بری از 3 تا رفرنس جستجوی سطحی بخونی این اصلا سوالی نیست که فکر لازم داشته باشه

Mega7000
پنج شنبه 07 اردیبهشت 1385, 17:56 عصر
آرژنگ جان
شما راجع به اینکه بدون استفاده از ذخیره مقادیر قبلی ،مقدار f(N)l را بدست بیاریم پیشنهادی دارید؟

mohandese_hiclass
جمعه 08 اردیبهشت 1385, 11:49 صبح
حرف آرژنگ کاملا درسته و معمولا تو المپیاد سوالات از این هم سختر میشه مثلا می گن اعداد 1 تا ن رو داری 300 رقم چی میشه البته اینم زیاد سخت ولی نسبت به سوال قبلی سخت تره

اَرژنگ
شنبه 09 اردیبهشت 1385, 05:37 صبح
آرژنگ جان
شما راجع به اینکه بدون استفاده از ذخیره مقادیر قبلی ،مقدار f(N)l را بدست بیاریم پیشنهادی دارید؟
الان ۲۰ صفحِه را سیاه کردم نمیدونم چه طوری بنویسم، ولی من دارم قسمت بندیه (n)f کار میکنم، اما از اینکه به جایی میرسه یا نه مطمعن نیستم، ولی اینکه اعداد چند بار تکرار میشند هم کمکه، مثلاً فقط دفعات تکرار اعداد را بنویسیم و بخوهیم ازشان استفاده کنیم، ۲ ، ۲ بار تکرار شده، ۳ ، ۲ بار تکرار شده، ... میده:
۲، ۲، ۳، ۳ ، ... ، بالاخره یک حتی اگر شده یک جوری یک پترنی بدست بیاریم که سوال را از وابسطگی به اعداد قبلی دربیاره و یا یک چیزی در همین مایه ها.
یک روش درختی هم بود که فقط جالب بود ولی برایه برعکس کردن به هیچ دردی نخورد.

اَرژنگ
پنج شنبه 21 اردیبهشت 1385, 12:39 عصر
سلام
این مسئله یکی از سوالات المپیاد هم بوده و جوابش هم هست.اما میخوام راجع بهش بحث بشه
روش الگوریتمی هم داره
المپیاد ریاضی یا الگریتم؟ ماله چه سالی؟ لطفا یک کمی بیشتر رفرانس بدین.

Mega7000
جمعه 22 اردیبهشت 1385, 10:45 صبح
المپیاد کامپیوتر(الگوریتم)
اما متاسفانه نمی دونم ماله چه سالیه