PDA

View Full Version : سوال: ماکزیمم و مینیمم گروهی اعداد



Mask
شنبه 14 بهمن 1391, 20:15 عصر
با سلام
آیا در دلفی تابع آماده ای برای به دست آوردن بزرگترین عدد از یک گروه عددی هست یا باید ،با چیزی شبیه به حلقه و استفاده از تابع MAX و مقایسه هر دو عدد ، این کار رو انجام داد؟

یوسف زالی
شنبه 14 بهمن 1391, 20:40 عصر
سلام


ShowMessage(FloatToStr(MaxValue([10, 20, 30.5, 42])));
ShowMessage(FloatToStr(MinValue([10, 20, 30.5, 42])));

Mask
شنبه 14 بهمن 1391, 20:49 عصر
ممنون
این کار رو برای یه ListBox که حدود 3000 عدد داره ، چطوری باید انجام داد؟

BORHAN TEC
شنبه 14 بهمن 1391, 21:14 عصر
اگه قبل از اعداد 0 نباشه یعنی به این شکل 0023 نباشه میتونی با متد sort آیتم ها رو مرتب کنی و سپس آخرین آیتم رو به عنوان جواب برداری. بهتره که خودت از لحاظ سرعت تستش کنی و ببینی که خوبه یا نه! البته بعید به نظر میرسه که این روش کارا باشه.

یوسف زالی
شنبه 14 بهمن 1391, 23:26 عصر
اگر سرعت کد نویسی برات مطرح باشه بهتره خودت دست به کد بشی و مثلا تابعی بسازی که این کار رو به سرعت برات انجام بده.


اگه قبل از اعداد 0 نباشه ..

کد 0 می شه 48 و از لحاظ ترتیبی درست سورت می شه. فکر کنم منظورتون دقیقا برعکسش بود.
اگر طول اعدادت ثابت هست (مثلا قبلش Space یا 0 هست) سورت جواب می ده و کدنویسی کمتری تحمیل می کنه.
اما می دونی که Order سورت N برابر بیشتر از Order ماکزیمم می نیمم هست.
این یعنی اگر ماکزیمم و می نیمم (هردو همزمان) 1000 تیک زمان می بره سورت 1000*1000 تیک طول می کشه.

BORHAN TEC
شنبه 14 بهمن 1391, 23:32 عصر
سلام

کد 0 می شه 48 و از لحاظ ترتیبی درست سورت می شه. فکر کنم منظورتون دقیقا برعکسش بود.
اگر طول اعدادت ثابت هست (مثلا قبلش Space یا 0 هست) سورت جواب می ده و کدنویسی کمتری تحمیل می کنه.
منظورم همینی بود که گفتم.
به نظرت کدوم عدد بزرگتره: 000123999 یا 125 ؟ :متعجب:
حالا اگه سورت کنی متوجه میشی که من اشتباه نکرده ام! :متفکر:

اما می دونی که Order سورت N برابر بیشتر از Order ماکزیمم می نیمم هست.
این یعنی اگر ماکزیمم و می نیمم (هردو همزمان) 1000 تیک زمان می بره سورت 1000*1000 تیک طول می کشه.
در کل اگر بر روی کاغذ در نظر بگیریم مرتب سازی نسبت به پیدا کردن مینیمم و ماکزیمم Order بالاتری دارد ولی اینکه چند برابر است بستگی به الگوریتمی داره که مرتب سازی با استفاده از اون انجام میشه و همیشه نمیشه بگیم که N برابر است.
موفق باشی رفیق :چشمک:

یوسف زالی
یک شنبه 15 بهمن 1391, 13:27 عصر
آقا چرا می زنی؟!! :لبخندساده:
آره. و فکر می کنم با سوء تفاهم مواجه شدیم!!
بین اعداد "6" و " 6" و "6 " کدوم بزرگتره؟
در هر حال مساله رو زیادی جدی گرفتیم.
بهتره که طول اعداد (رشته ای) ثابت باشه و قبلشون با 0 پر شده باشه.
(البته این بهتره به این مفهوم نیست که بنده از آسمان وحی می گیرم :قهقهه:)
برادر در خصوص N برابر بودن هم خواستم اهمیت مطلب برسه. نه اینکه خط کش بگذاریم که یکی N log N هست اون یکی یک چیز دیگه.
به هر صورت ترجیح من اینه که برای کارهای سفارشی شده سورت ها و ماکس و مین ها هم سفارشی باشند تا سرعت بالاتری رو (معمولا) شاهد باشیم.
برادر حمزه!
به نظرم اگر لیست رو از اول برای نگهداری لیستی از اعداد گرفتی راه های ساده تری هم برای رسیدن به خدا هست!