Найдите разницу между двумя числами, используя функцию журнала
Опубликовано: 21 Сентября, 2022
Даны два целых числа a и b , задача состоит в том, чтобы найти вычитание a и b , т. е. (ab) , используя логарифмическую функцию.
Note: We can not use the – operator.
Примеры:
Input: a = 4, b = 81
Output: -77Input: a = -3, b = 16
Output: -19Input: a = -3, b = -13
Output: 10
Подход: Чтобы написать решение этого вопроса, используйте следующие три свойства журнала
- log( a / b) = log( a ) – log( b )
- log a( a ) = 1
- log ( ab ) = b log ( a )
Объедините эти три свойства и напишите.
loge ( ea / eb )
=> loge ( ea ) – loge ( eb ) {using property 1}
= > a loge ( e ) – bloge ( e ) {using property 2}
= > a – b {using property 3}
Note: e is the Euler number i.e, 2.71828
Выполните следующие шаги, чтобы решить проблему:
- Вычитание ab будет log(exp(a) / exp(b)) в качестве ответа.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(1)
Вспомогательное пространство: O(1)