-
April 30th, 2020, 14:37
#1
یافتن بزرگترین اعداد در آرایه ای از اعداد
سلام و درود
مدتی هست که دنبال روشی هستم که بتونم بزرگترین اعداد رو در آرایه ای از اعداد جدا کنم.
به طور مثال آرایه ای به شکل زیر دارم:
کد PHP:
[10, 15, 17, 19, 14, 10, 25, 15, 11, 33, 28]
به عنوان مثال در آرایه بالا بتونه الگوریتم بهم اعداد 19 و 25 و 33 رو بده.
بخوام دقیق تر توضیح بدم خدمت شما به این شکل که بزرگترین اعداد رو به صورت بازه ای میخوام نه بزرگترین عدد کل آرایه که اینجا میشه 33. بازم بخوام بیشتر بگم عدد بزرگی رو میخوام که بعدش اعداد از اونجا کوچیک شدن.
امیدوارم متوجه شده باشید.
ممنون میشم اگر الگوریتمی برای تشخیص این مورد دارید یا به ذهنتون میرسه راهنمایی کنید.
سپاس
-
-
April 30th, 2020 14:37
# ADS
-
April 30th, 2020, 17:32
#2
پاسخ : یافتن بزرگترین اعداد در آرایه ای از اعداد
کد PHP:
asort($arr);
$result = array_slice($arr, -3, 3);
این برای مثلا 3 تا بزرگترین اعداد
برای باقی مانده ی اعداد هم
کد PHP:
arsort($arr);
$result2 = array_slice($arr, 3);
اگر درست متوجه شده باشم منظورتون رو . اگر نه که مثال بزنید
ویرایش توسط hoka : April 30th, 2020 در ساعت 18:39
-
تعداد تشکر ها از hoka به دلیل پست مفید
-
April 30th, 2020, 21:43
#3
پاسخ : یافتن بزرگترین اعداد در آرایه ای از اعداد

نوشته اصلی توسط
hoka
کد PHP:
asort($arr);
$result = array_slice($arr, -3, 3);
این برای مثلا 3 تا بزرگترین اعداد
برای باقی مانده ی اعداد هم
کد PHP:
arsort($arr);
$result2 = array_slice($arr, 3);
اگر درست متوجه شده باشم منظورتون رو . اگر نه که مثال بزنید
درود بر شما و تشکر بابت پاسختون.
نمونه من به عنوان مثال بود و تعداد این اعداد 2-3 هزارتاست و اصلا تعداد اعدادی که شرایط رو دارن مشخص نیست توی نمونه من 3 تا بود.
در کل فرمولی که میتونم بگم اینه که اعداد به صورت افزایشی میشن بعد به یه قله ای میرسن از اونجا میان پایین اون نقطه قله میشه یکی از بزرگترین اعداد ما همین طوری توی آرایه پیش بری تعداد این اعداد شاید 100 تا هم باشه.
-
-
April 30th, 2020, 23:05
#4
پاسخ : یافتن بزرگترین اعداد در آرایه ای از اعداد
این یک نمونه خیلی ساده هست نوشتم، باید تست اش کنی، شاید تو موارد خاص مشکل داشته باشه.
کد:
function biggest_numbers($numbers_list) {
$last_number = NULL;
$big_numbers = [];
foreach ($numbers_list as $number) {
if ($number != NULL && $number < $last_number) {
array_push($big_numbers, $last_number);
$last_number = NULL;
} else {
$last_number = $number;
}
}
return $big_numbers;
}
$list = [-15,-1,0,-1,10, 15, 17, 19, 14, 10, 25, 15, 11, 33, 28];
print_r(biggest_numbers($list));
// output
Array
(
[0] => 0
[1] => 19
[2] => 25
[3] => 33
)
ویرایش توسط firebox : April 30th, 2020 در ساعت 23:14
-
تعداد تشکر ها ازfirebox به دلیل پست مفید
-
پاسخ : یافتن بزرگترین اعداد در آرایه ای از اعداد

نوشته اصلی توسط
firebox
این یک نمونه خیلی ساده هست نوشتم، باید تست اش کنی، شاید تو موارد خاص مشکل داشته باشه.
کد:
function biggest_numbers($numbers_list) {
$last_number = NULL;
$big_numbers = [];
foreach ($numbers_list as $number) {
if ($number != NULL && $number < $last_number) {
array_push($big_numbers, $last_number);
$last_number = NULL;
} else {
$last_number = $number;
}
}
return $big_numbers;
}
$list = [-15,-1,0,-1,10, 15, 17, 19, 14, 10, 25, 15, 11, 33, 28];
print_r(biggest_numbers($list));
// output
Array
(
[0] => 0
[1] => 19
[2] => 25
[3] => 33
)
سپاسگزارم کد خوبی بود.
فقط اون قسمت اول if فک کنم میخواستید last_number رو چک کنید اشتباها number رو چک کردید null نبودنش رو.
ولی عالی بود.
-