Как найти исходное число?

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);


Получился такой не эффективный код на бинарном поиске(типо того). Как бы улучшить быстродействие или использовать другой подход для достижения цели ?
И да, да, да ) я ставлю цену и скидку, желая получить "старую цену".
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега Алгоритмы
♬♬
только нейронными сетями надо решать!

X = 0.7 * Y Что здесь сложного? Найдо найти все пары (X, Y), где оба целые ?

То ли лыжи не едут..
function search_start_value($price, $sale) {
  return $price * 100 / (100 - $sale);
}
echo search_statr_value(1499, 30); // 2141,4285714286
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
WizardNG
@WizardNG
Математика, 3-й класс
X+0.3*Y = Y
X = Y - 0.3*Y
X = 0.7 * Y
Y = X / 0.7
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы