Only one pair of distinct positive integers satisfy the equation m^n = n^m
keith-mcnulty.medium.com
keith-mcnulty.medium.com
Differentiating the above function yields (1/x^2)(1-log(x))x^(1/x), which is positive when log(x) < 1 and negative when log(x) > 1. So the function has a maximum at e and decreases on either side of it. Therefore one of our integers must be less than e, and the other greater than it. For the smaller integer there are only two possibilities, 1 and 2. Using 1 doesn't give a solution since the equation x^(1/x) = 1 only has the solution 1. So the only remaining possibility for the smaller number is 2, which does yield the solution 2^4 = 4^2. Since x^(1/x) is strictly decreasing when x > e, there can't be any other solutions with the same value.
Look at two consecutive terms: n^(1/n) and (n+1)^[1/(n+1)]. The ratio of the first to the second -- we want to prove that this is >1 -- is n^(1/n) / (n+1)^[1/(n+1)]. This is bigger than 1 iff its n(n+1)th power is; that is, iff n^(n+1) / (n+1)^n > 1. We can write this as n (n/(n+1))^n; so what we need is that (n/(n+1))^n > 1/n.
(Handwavily: we know that the LHS is about 1/e, so for n>=3 this should be good. But we want a proof and we're trying to do it without nontrivial analytic machinery.)
Actually, I prefer to write this as ((n+1)/n)^n < n, or (1+1/n)^n < n. Expand this with the binomial theorem: we get sum {0<=k<=n} of (n choose k) n^-k. And we have (n choose k) = n(n-1)...(n-k+1) / k! < n^k/k! so this is strictly less than sum {0<=k<=n} of 1/k!. And for k>0 we easily have k! >= 2^(k-1) so this sum is no bigger than 1 + 1 + 1/2 + 1/4 + 1/8 + etc. = 3.
So, the function on integers n -> n^1/n is decreasing for n >= 3. Now the proof goes through as before.
(Maybe there's a more thoroughly number-theory-ish way to do it by looking at prime factorizations, but when I try it that way it always seems to end up rather a mess.)
[EDITED to add:] But elsewhere in the discussion users bustermellotron and diffeomorphism give (very similar) neat number-theory-ish proofs, either of which is definitely a better proof than the one using the calculations above.
n^m = m^n, so n^m and m^n share the same prime factorization. Call it p1^x1 * ... * pk^xk.
n = n^m^(1/m) = p1^(x1/m) * ... * pk^(xk/m)
m = m^n^(1/n) = p1^(x1/n) * ... * pk^(xk/n)
Therefore each xi is divisible by both n and m, so it's divisible by lcm(n, m). Call lcm(n, m) = d. Now define:
z = p1^(x1/d) * ... * pk^(xk/d)
Both n and m are powers of z!
n = z^(d/m)
m = z^(d/n)
Call a=d/m and b=d/n. Then:
n^m = (z^a)^(z^b) = z^(az^b)
m^n = (z^b)^(z^a) = z^(bz^a)
n^m = m^n -> z^(az^b) = z^(bz^a) -> az^b = bz^a
EDIT: continuing proof.
That's as far as I've got. Can someone run with it?
I suppose at least some proofs vaguely like that are possible because Gödel's incompleteness theorem is one, although I suspect that that same theorem puts some constraints on these "metaproofs."
Inference https://en.wikipedia.org/wiki/Inference ; inductive, deductive, abductive
Propositional calculus > Proofs in propositional calculus: https://en.wikipedia.org/wiki/Propositional_calculus
Quantum logic: https://en.wikipedia.org/wiki/Quantum_logic
https://twitter.com/westurner/status/1609495237738496000 :
> [ Is quantum logic the correct or a sufficient logic for propositional logic? ]
What are quantum "expectation values"; and how is that Axiomatic wave operator system different from standard propositional calculus?
Yep, I took several metamathematics classes at UCLA! Mostly on proof theory, but also analyzing metamathematical results (like Godel's theorems, Henkin construction, and so on).
You often see this I think, in "pretty" proofs compared with the more direct approach. A clever early step or some bit of startling insight.
I think it's arguable that OP's approach is cleaner for some value of clean, but the article's approach gave me happy flashbacks to doing number theory in undergrad that OP's approach didn't.
When communicating to the wider world, aesthetics do matter, and yeah, everything you said as well.
Since m and n are distinct, we may assume that m > n >= 2. From the equation and unique factorization, we know that n divides m, so write m = nd.
Then (nd)^n = n^(nd). Hence d^n = n^{n(d-1)}, which yields d = n^{d-1} >= 2^{d-1}.
Claim: if k is an integer greater than or equal to 3, then k < 2^{k - 1}.
Proof: the base case is clear: 3 < 4. Suppose k > 3 and k - 1 < 2^{k - 2}. Then k < 2^{k-2} + 1 <= 2^{k-1}, where the last inequality holds because 2^{k-1} - 2^{k-2} = 2^{k-2} >= 1. QED
So, d must be less than 3. Since m = nd and m and n are distinct, d is not 1, so d = 2. Since d = n^{d-1} and d - 1 = 1, we have n = d, so m = 4.
m = j p^a → v_m(p) = a
n = k p^b → v_n(p) = b
p is not a factor of j or k m^n = j^n (p^a)^n
= j^n p^(an)
= k^m p^(bm)
= …
= n^m
v_{m^n}(p) = an = bm
Note that a=0 iff b=0. This is the case where p is neither a factor of m nor n. b/a = m/n >=1
This ratio is the same for all primes, so every prime has: v_m(p) >= v_n(p)
so n | m
(We didn't need the ratio to be the same, but we did need the ratios to be all greater >= 1)The only integer (k-1)-th root of k is 2 for k = 2. Thus, n = 2, k = 2, m = 4.
There's a clear signal that it's constructed by a person with advanced mathematical training: the laconic, "high points only" style. It makes small, but nontrivial and correct, logical leaps, expecting that you will work through the details needed to justify the leap yourself.
For example, the reasoning in this sibling comment is needed to justify the "n divides m" claim https://news.ycombinator.com/item?id=35638344
In my experience, GPT writes much more verbose arguments and cannot reliably reason at this level.
I am not a mathematician, but in the discrete domain of integers:
1) you have two functions, essentially we look for where the two 3d space surfaces intersect, if z is taken as the result for each equation.
2) the integers "are disctinct", so (0,0) and (1,1) are out, plus (2,2) (3,3) etc. Basically a whole linear diagonal in the instersection of both 3d spaces is excluded (why though, to what useful end?)
3) Starting points for the ranges is therefore (0,1) and (1,0)
4) 1^y is always 1, and x^0 is always 1 so there is a constant starting value of 1 both on both axis
5) but x^y will always be larger than y^x, for y>x and x^y > y^x (prove this by taking the first derivative to get rate of change. Do you use Laplace z domain for discrete, instead of s for continuous?)
6) and the converse to 5.
So once you have found one solution, you know to stop looking, the two surfaces keep diverging from each other.
Why resort to the continuous domain to solve a problem n the discrete, is this even a valid approach?
eg Is there a formal proof that says integers strictly follow that same rules as the continuous domain, just as a subset? I'm interested.
Does this come under group theory, a set with an applied operation?
As I said I am not a mathematician, I am an electrical engineer so probably one of the worst abusers of pure math in a formal sense, but the more I think about this the more questions this raises in my thinking.
Can someone point out errors in thinking?
This is false, though! Or, it's almost always true, but there are some exceptions. We of course have an exception at (2,4) and (4,2), where they're equal, and of course at (n,n), where they're obviously equal. And of course 0's and 1's will cause problems for you.
But also, most interestingly, there's an exception at (2,3) and (3,2)! 2<3, and yet, 3^2 > 2^3. Any proof has to account for this!
(There's a fair bit I could say about this exception, but perhaps I should just let you think about it instead. :) )
> Why resort to the continuous domain to solve a problem n the discrete
Because oftentimes this is easier. (In a number of cases it's much easier.) Also... you did this? Like to the extent that your step (5) is valid, you seem to have "proven" it by using the first derivative. That's a continuous tool! I'm not sure what you're talking about with the "Laplace z domain". Or are you using "first derivative" to mean "first difference", or something?
> is this even a valid approach?
Yes, why wouldn't it be? In fact this is actually one of the big reasons for introducing larger number systems, that they let you prove things about the original smaller number system. The rational numbers let you prove things about the integers; the complex numbers let you prove things about the reals; the real numbers and p-padic numbers let you prove things about the rationals; etc. (The integers let you prove things about the whole numbers!)
Proving statements about integers by means of complex numbers is a whole field in itself, i.e., analytic number theory. And in the case of Goodstein's theorem, one famously proves a statement about the whole numbers by passing to the ordinals...
Yes, p-adic numbers are also really interesting to look into.
It's also interesting to re-derive much of analysis (like limits and derivatives etc) in the context of the dual numbers (https://en.wikipedia.org/wiki/Dual_number):
> They are expressions of the form a + b * ε, where a and b are real numbers, and ε is a symbol taken to satisfy ε^2 = 0 with ε ≠ 0.
You can sort-of pretend that ε is an infinitesimal, but with a sound theoretical footing.
See https://math.stackexchange.com/questions/341535/is-the-theor...
> You can sort-of pretend that ε is an infinitesimal, but with a sound theoretical footing.
You can just work directly with infinitesimal values on a sound theoretical footing. This goes under the name "nonstandard analysis". https://en.wikipedia.org/wiki/Nonstandard_analysis
If that's your only goal, the dual numbers aren't accomplishing anything.
This is an oversimplification. Nonstandard analysis, the hyperreals, are one way of adding in infinitesimals to the reals, and definitely not the one I'd recommend for all use cases (although going from context, they may be appropriate here).
There are plenty of ways to make a number system that add in infinitesimals to the reals, such as yes the hyperreals, and also I'd count the dual numbers among them, but there's also e.g. the surreal numbers: https://en.wikipedia.org/wiki/Surreal_number
So, why am I kind of down on the hyperreals? Well, thing is, as I understand it, nonstandard analysis isn't really the study of the hyperreals; it's the use of the hyperreals to study the reals. I mentioned above that one big use of passing to a larger number system is that it reflects on the smaller number system; however, as best I can tell, the hyperreals are pretty much used purely in this way. They're used pretty much entirely as a tool for proving statements about the real numbers, rather than an object of study in their own right.
And there's a reason for that; people often talk about "the" hyperreals, but actually, they're not uniquely defined. There's not really the system of hyperreal numbers, so much as there are potentially different systems of hyperreal numbers, which is annoying, but not if you only want to use them as a tool to study the reals, because their (relevant) relation to the reals is all the same. It's a bit icky.
So yeah if you want to do analysis or calculus -- which might be the case, given that the earlier context was dual numbers, and that's what one would typically use dual numbers or -- then sure, use hyperreals. But if you just want to play around with a nifty number system that includes both reals and infinitesimals... eh, they're not great. You're likely to have more fun with the surreals.
(More generally, of course, it's worth remembering that there's no need to stick to well-known systems of numbers... you can invent your own! Like, if for some reason you need infinitesimals, but you don't want them to square to zero like in the dual numbers, but you also don't want all the stuff that's in the hyperreals or surreals, there's nothing wrong with using R[ε] (or R(ε), or other variants depending on exactly what you're doing) to get a sort of minimal reals-with-infinitesimals...)
[Edit: Is there no way to do bold anymore? Those R's in the above paragraph were supposed to be bold, to indicate the real numbers...]
> [Edit: Is there no way to do bold anymore? Those R's in the above paragraph were supposed to be bold, to indicate the real numbers...]
I believe you can do bold in Unicode. (see: 𝐛𝐨𝐥𝐝) As far as I know HN has never supported bold as a markup style.
Standard number sets can be done the same way; I would represent the reals as ℝ. My standard method is to go to the wikipedia page for "blackboard bold" and copy the letter I want.
I'd like to know more about the sets you refer to, ℝ[ε] and ℝ(ε), but I don't recognize them. Do they have names I can search for?
Oh, I think you're right, I'd forgotten. Grr, HN's limited subset of Markdown is quite annoying sometimes. Well, I'm going to be lazy and just write "R".
> I'd like to know more about the sets you refer to, ℝ[ε] and ℝ(ε), but I don't recognize them. Do they have names I can search for?
No, they don't, that's part of my point -- that you don't need to use recognized systems with names, you can use the usual constructions (or unusual constructions...) to make your own in the way that mathematicians always do. I mean I guess they sort of have names in that the notation would be pretty understandable to most everyone, although pronouncing it is annoying in that they'd both most typically just be pronounced "R adjoin epsilon", although I guess you could say "ring-adjoin" or "field-adjoin" to disambiguate. But note that there's plenty of other variants one could make as well, not just these.
Basically go learn some abstract algebra, is what I would say. Or go read about ring adjunction (and polynomials) or field adjunction (and rational functions).
Btw, I wouldn't describe these as "sets", that's not really the appropriate word to use here. When we talk about systems of numbers, we are, well, talking about systems, or algebraic structures -- rings, fields, ordered rings or fields, topological rings or fields, etc. To say "set" implies that what is important is the elements of these things, the contents; but these elements have no meaning on their own, they're given meaning by the structure -- the permitted operations, relations, etc. (Addition, multiplication, negation, less than or equal to...) Formally, an algebraic structure is a tuple, with the base set being just the first element of that tuple, even if we typically abuse notation and use the same symbol to refer to the set and the structure on that set.
Um, hope that's helpful?
Which is to be expected, right? Given that differential calculus is just difference calculus in the limit.
from
https://www.tutorialspoint.com/differentiation-in-z-domain-p....
I was taught in engineering math that z-domain is the Laplacian discrete equivelent of the s domain, which is continuous and used by EE as well in analog.
z^-1 (or z(-1) means last sample. It is commonly used in digital signal processing, FFT etc.
s domain is used for (from memory) the operater e^-jw, which is for electrical engineers the transform for use with sine waves, such that impedance is 1/sC for capacitance and sL for inductance.
z domain has useful properties like "The differentiation in z-domain property of Z-transform states that the multiplication by n in time domain corresponds to the differentiation in zdomain."
I am sure I have made some technical mistakes in the above, but it is how I remember it and they don't impact my ability to apply it for my limited EE needs.
As to the question about the valid approach, intuitively I see this, but wondering if there was a formal proof of some kind, or is it taken as given?
So wait does that mean you weren't actually sure if this approach to that step would work? I assumed you were saying you had a proof, not just outlining an approach you thought would work. (I mean, obviously you didn't have a proof of the whole thing as the overall statement is false, but individual steps might have worked.)
But I have to note -- even if the proof works, then if you're applying the Z-transform, then you are once again not sticking to the realm of the discrete! Complex numbers are a continuum matter. So that approach still doesn't yield an integers-only proof!
> As to the question about the valid approach, intuitively I see this, but wondering if there was a formal proof of some kind, or is it taken as given?
I'm not really sure how to answer this -- what would a formal proof here even consist of? It's easy enough to do it in any instance, but the problem is, how would you even formally state the general principle?
Like you could do large classes of statements, certainly. So for instance, if what we're doing is purely algebraic, then you could say, if A and B are algebraic structures, and i:A->B is an injective homomorphism, and S is a set of algebraic equations all of which are always in the image of i, then all of them are always true in A; but of course there's way more types of statements one can make than algebraic equations.
So, uh, yeah, one can write down any number of statements like that, but I don't know how you'd formally abstract it into a general principle...?
Many problems are easier to solve in the reals (due to being complete), and you can then restrict that solution to your (sub)set of interest — in this case, the integers.
You see the same thing with Pythagorean triples being simpler to solve by doing the math over the complex numbers and then restricting your answers.
However, if only A) needs to be satisfied: y = 3, x = 2 is a counterexample, as x^y = 2^3 = 8 < 9 = 3^2 = y^x.
edit: looks like someone had the same thought as me as I was typing my reply!
It's hilarious that the FIRST two integers greater than one form a counter example to their "proof".
> but x^y will always be larger than y^x, for y>x and x^y > y^x (prove this by taking the first derivative to get rate of change. Do you use Laplace z domain for discrete, instead of s for continuous?)
I am struggling to follow what are you saying here
> Why resort to the continuous domain to solve a problem n the discrete, is this even a valid approach?
I can't make heads or tails of this question. The proof says, correctly, for all (real) x != y, x < y solutions it is true that 0<x<e and e<y. He found this by investigating the derivative and establishing the monotonically increasing / decreasing nature of the function. Only after finding this out using does he go back to the original question: what integer x could be? Since he restricted x to be 0 < x < e , we only need to investigate the case of 1 and 2.
That’s trivially true, as that last condition equals the claim:
but x^y > y^x, for y>x and x^y > y^x
^^^^^^^^^ ^^^^^^^^^
Also, if you leave out the and x^y > y^x part, that isn’t generally true because, for example 2⁴ = 4² and 1² < 2¹.Another, minor, point: you write
> Why resort to the continuous domain to solve a problem n the discrete
and
> essentially we look for where the two 3d space surfaces intersect
Those two are in conflict with each other.
Because if m=n, then n^m=m^n is trivially true.
There is no explanation as to why - eg maybe it could be if the equations represent a physical system and m=n implied the same physical space was occupied by two objects, for want of a better example.
But if the equations represented some kind of abstract concept, why are not all solutions valid and of interest?
It seems like me saying, find an equation that only yields all the primes that use any digit once - but why, to what end and value?
It may have come as a surprise to a programmer, but in the domain of math, the integers are indeed a subset of a real numbers.
No one said there was one.
OP said "interesting problem".
2^1 = 2
After relabeling we may assume n<m.
Step 1: We claim that there exists a natural number k such that m=kn.
Write the equation as
n^n n^(m-n) = m^n
n^(m-n) = (m/n)^n
The left-hand-side is always an integer. The right-hand-side is an integer if and only if such a factor k exists.
Step 2: Inserting this ansatz, we may take n-th roots and reduce the problem to n^k =k n.
Step 3: Monotonicity. Clearly we have equality for k=1. We claim that the difference n^k-kn strictly increases with k for fixed n unless n=2, k=1. That claim in particular gives the result.
We prove this by induction in k. That is, suppose that n^k\geq kn holds for all k\leq K, then
n^(K+1) = n n^K \geq n K n \geq Kn +Kn \geq Kn +n = (K+1)n.
The second inequality is strict unless n=2 and the last one is strict unless K=1.
The proof that no rational number squares to 2 is a famous result of number theory. That no rational non-integer, raised to any power, is any integer, surely has to be justified here.
True, but considering that the linked post uses e, log, limits and derivatives without any further comment, I am going to err on the side of "nah, enough detail".
------BELOW IS BING'S OUTPUT
This statement is true. If x is a rational number and x raised to the power of an integer is an integer, then x is an integer. This statement is called the rational root theorem. The proof of this theorem is based on the fact that if x is not an integer, then it can be expressed as a fraction p/q where p and q are integers and q ≠ 0. Then, x raised to the power of an integer can be expressed as (p/q)^n which can be simplified to p^n/q^n. Since p^n and q^n are integers, p^n/q^n is a rational number. If x raised to the power of an integer is an integer, then q^n must divide p^n. Since p and q are relatively prime, this implies that q = 1. Therefore, x is an integer.
That is just wrong. It is the completely standard proof and can be found everywhere (the proof is over 2000 years old). Add to that, that it forgets to choose p and q as relatively prime, but then uses that at the end.... Not impressive.
But k cannot be equal to 1 as per your assumption that n<m. So you need to still prove a base case for the induction step.
"There's a maximum at e, so the only two possible values on the left of e that can be used in these pairs are 1, and 2. But really there's only one, because 1 is the power identity, so we can't use that. If there is a solution, it has to use 2."
Which means we're solving one function for one unknown, in the natural numbers. 2ⁿ=n² gives n=4. We have found the only pair of integers that satisfies our constraint function.
Edit: “Distinct”
Adding "distinct" would have made it clearer, but it was obvious that the author meant distinct from reading the title alone.
It's math. No assumption is ever obvious. Only parts of some proofs are ever allowed to be called obvious.
Picking a mathematical formulation like you did can avoid that kind of implication, but there wasn't a template for which formulation to use and the way you wrote that makes it look like order matters which isn't right either.
And that also sounds like two ordered numbers which is not what the question calls for.
Do a cube and a square land next to each other ever again?
Note it's not asking if they land on each other, that is trivial - 1000000 is 100^3 and 1000^2.
My solution was to form an equation, divide by x and solve the resulting quadratic equation. It produce new solutions: 0 and 1, 0 and -1! As well as 2 and 3. So I was encouraged to say no, those were the only solutions.
if m^n = n^m is true then
(2a)^(2b) = (2b)^(2a)
2^2b * a^2b = 2^2a * b^2a
since m,n are distinct and a,b are distinct let n>m, b>a
2^(2(b-a)) * a^2b = b^2a
so since b>a, b must also be even
let b=2c
2^(2(2c-a)) * a^4c = (2c)^2a
2^(2(2c-a)) * a^4c = 2^2a * c^2a
2^(2(2c-a)) = 2^(4c-2a) plug in and divide 2^2a
2^(4c-4a) * a^4c = c^2a (1)
Here either c<a, c>a or c=a
if it's the first two then let c+k=a
2^(4k) * a^(4a+4k) = (a-k)^2a (2)
if k is positive
2^(4k) * a^(4a+4k) > a^2a > (a-k)^2a
breaking equality (2) so c<a is false
if k is negative, remember 2c = b > a with that 2c+2k=2a -> 2k>a, but a is positive, so k is positive.
Thus, c=a (giving only 1 possible solution), plugging into (1) and solving gives
2^(4a-4a) * a^4a = a^2a
a^4a = a^2a
a^2a = 1
a = 1.
so m=2, c = 1, b=2, n=4
2^4 = 4^2
There are probably some mistakes though :P
>Now, since e is somewhere between 2 and 3, we have to conclude that n must be 2. Further, from our curve, we can see that there can only be one other value of x for which (lnx)/x = (ln2)/2, and since we know that 2⁴ = 4², we know that the other integer must be 4.
Is this sort of thinking something that could be justifiably written in a real proof? Sure, conveniently fishing out 2 as n seems to narrow down the search space for m, but I'd imagine this wouldn't work for harder problems
Since e = 2.71..., there are not too many options for n. The sentence is a bit overconvoluted, but it's correct.
Of course if the search space is bigger, you need to either do some more thinking to narrow it down - or spend a lot of time probing candidates.
“e is between 2 and 3” can be considered common knowledge, it easily follows from thd proof that its defining limit converges.
Somewhat unrelated, but I cant help but ask why authors are still using Medium as opposed to Substack or some other alternative. The hook of the post happened to interest me to the extent where I went looking for an un-auth-walled version, but I'm sure there have been countless cases where I have simply abandoned it because I wasn't invested enough to seek out the mirrors -- and I'm sure no author wants that.
I'm not formally trained Mathematician, but I think this is not an analytic proof - it lacks rigour. It is more a graphical approach that appeals to the reader's intuition. I could be wrong here though.
Second, I really really thought the last graph will include y = x line and was very surprised to not see it :)
And if I wasn't clear - it wasn't my intent to treat this any less "useful". If anything, it is more interesting (for me) to read about solutions that give an intuitive feel, than dry analysis.
In this case it's even right
m = n log_n(m)
Because m and n are distinct (ie: m!=n), let's say that m>n.
The log term will always be greater than one. Imagining the shape of the log function (with base>1), it isn't hard to see that there is one solution.
Not a rigorous proof, but neither was the article.
The mistake in your proof is that you considered the shape of the log function while implicitly holding m on the left-hand-side constant (i.e. you should have concluded "for a constant m", there is only 1 n satisfying this equality"). However, since m is variable, you have to consider an infinite number of log functions. If I missed something, let me know.
Would be interesting to use a recurrence relation by substituting m
Oof. My highschool teacher would have had a field day with this one!
Which you hit very fast even if you take a simple approach to the search space.
Just use Rolle's theorem. If you took calculus, you learned Rolle's theorem.
fake quote> Anyone that took a Calculus course knows how to analyze this function and get the minimum, maximum and increasing and decreasing intervals. The calculation is unsurprising and boring, so I will skip it and use a graph instead.
fake quote> Anyone that didn't take a Calculus course will not understand the technical details. The calculation is long enough to be distracting and boring, so I will skip it and use a graph instead.
Unless the main public of the blog are students from the first year of the university, I agree with the author that it's better to use a graph and left the calculations as an exercise.
[Perhaps the analytical calculation could have been a note at the bottom, but it's long and unsurprising enough to be boring to write it clearly and carefully. Just left it as an exercise :) .]
1. pair: m = 2 n = 4
2. pair: m = 4 n = 2
In this context (named values n,m) order does seem to matter.
https://www.desmos.com/calculator/f61mxuqurc [update]
https://www.desmos.com/calculator/aqhcs63r2e [first version]