Как найти исходное число? X + 30% от Y = Y
или
X = Y - 30% от Y
Найти Y, где X = целое число. function search_statr_value($price, $sale, $max_price = false) {
if( $max_price === false ) {
$max_price = $price * 100;
}
$resultPrice = round(($max_price/100)*$sale);
// Нашли !
if($price == $resultPrice) {
return $max_price;
}
if($resultPrice > $price) {
return search_statr_value($price, $sale, $max_price/2, $max_price);
}
if($resultPrice < $price) {
return search_statr_value($price, $sale, round($max_price+($max_price/2)));
}
}
echo search_statr_value(1499, 30);
Получился такой не эффективный код на бинарном поиске(типо того). Как бы улучшить быстродействие или использовать другой подход для достижения цели ?
И да, да, да ) я ставлю цену и скидку, желая получить "старую цену".

21 Авг 2019 в 06:03
174 +1
0
Ответы
1

Для улучшения эффективности можно использовать более оптимизированный метод. Один из способов - использовать простую математическую формулу для нахождения исходного числа:

X = Y - 0.3Y
X = 0.7Y
Y = X / 0.7

Таким образом, для нахождения исходного числа Y можно просто разделить значение X на 0.7.

Пример улучшенного кода:

function calculate_original_value($price, $sale) {
return $price / (1 - $sale/100);
}
$price = 1499;
$sale = 30;
$original_value = calculate_original_value($price, $sale);
echo $original_value;

Этот код будет более эффективным и простым для нахождения исходного числа.

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 255 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир