Найдите разницу между двумя числами, используя функцию журнала

Опубликовано: 21 Сентября, 2022

Даны два целых числа a и b , задача состоит в том, чтобы найти вычитание a и b , т. е. (ab) , используя логарифмическую функцию.

Note: We can not use the operator.

Примеры:

Input: a = 4, b = 81
Output: -77

Input: a = -3, b = 16  
Output:  -19

Input: 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)