Minimize |n-2^x*3^y| over the integer

  • Context: Undergrad 
  • Thread starter Thread starter a1call
  • Start date Start date
  • Tags Tags
    Integer
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
5 replies · 2K views
a1call
Messages
90
Reaction score
5
Hi,
Is there a way to formulate the solution of minimization of:
abs(n-2^x*3^y)
Over integers x and y for any given integer n?
A numeric example that I found by trial and error is:
|6859-2^8*3^3|=53

Thanks in advance.
 
Mathematics news on Phys.org
a1call said:
Hi,
Is there a way to formulate the solution of minimization of:
abs(n-2^x*3^y)
Over integers x and y for any given integer n?
A numeric example that I found by trial and error is:
|6859-2^8*3^3|=53

Thanks in advance.
That's hardly a minimum value. If n = x = y = 1, the result is |-5| = 5
If n = 6 and x = y = 1, the result is 0, which would be minimum value for the parameter n = 6.

Have you studied calculus? In particular multivariate calculus? There are a couple of techniques that can be used to function the minimum or maximum of a function of two variables. There is also the technique of Lagrange multipliers.
 
Hi Mark44,
n is not meant to be a variable. It is a known integer value and the problem is to solve for integer variables x and y such that the result has smallest integer value. So for my numeric example n can only be 6859. x and y can be any integers. the minimization solution is x=8 and y= 3, because no other integer values of x and/or y will result in a number less than 53.
As far as I know calculus does offer solutions over the rational field but not over the integer field.
Would the Lagrange multipliers offer a general solution for this?
Thank you for the reply.
 
Last edited:
I don't expect there to be a known solution for this. I am just looking for expert-confirmation or authoritative-reference on the subject.
 
Positive integers? Otherwise there is no minimum.

Minimizing abs(2^x-3^y) apart from the case |8-9|=1 is still an open problem. Your problem doesn't look easier.

log(n)=x*log(2)+y*log(3) and some approximation techniques could help to reduce the number of cases to test.
 
Thank you for the reply mfb.
The log formula is very interesting.