Positive integer solutions to product

223 Views Asked by At

For $a,b,c,d\in\mathbb{N}$, I am looking for all positive integer solutions to $$a(b+1)c(d+1)=(a+1)b(c+1)d.$$ I already figured out that $a=b$ and $c=d$ as well as $a=d$ and $b=c$. But now I am stuck and I am wondering how I can check for more solutions. How can I approach this?

The problem arises from considerations on a Markov chain $X$ associated to a particle system on a finite graph $G$. Solutions $(a,b,c,d)$ give subgraphs of which are "of low energy" with respect to the stationary distribution of $X$.

1

There are 1 best solutions below

7
On

Not an answer but a note about the connection with cycles that are subject to the so far unsolved Collatz problem:

Let us define the following function:

$$ g_k(x)= \begin{cases} kx+1 & 2\nmid x\\ x/2 & \text{otherwise} \end{cases} $$

In the case $k=3$ we have the so-called Collatz function and until now it is unproven whether a cycle exists other than the trivial one $(4,2,1,4,2,1,\ldots)$.

Interestingly there exist other $k$-values for which we can find such cycles. Crandall found for $k=5$ and $k=181$ such cycles. Let us take the example of $k=181$: There we have the two $2$-cycles $(27,611)$ and $(35,99)$, since $(181\cdot27+1)/2^3=611$ and $(181\cdot611+1)/2^{12}=27$.

If $g_k(x)$ contains such $2$-cycles, lets consider $(a,c)=(181\cdot27,181\cdot611)$ and $(b,d)=(181\cdot35,181\cdot99)$, then the diophantine equation given by the OP is fullfilled:

$$(a+1)\cdot(c+1)\cdot b\cdot d=(b+1)\cdot(d+1)\cdot a\cdot c\\=(181\cdot27+1)(181\cdot611+1)⋅35⋅181⋅99⋅181=(181⋅35+1)(181⋅99+1)⋅181⋅27⋅181⋅611$$

The case $k=5$ even exhibits $3$-cycles, see the work of Crandall and Franco and Pomerance. In the case of $3$-cycles the diophantine equation contains six variables $a,b,c,d,e,f$.

Bruteforce workaround may help in the case that there is no explicit solution. At least we are able to collect all solutions by distinguishing two cases which I obtained by:

Reduce[a (b + 1) c (d + 1) == (a + 1) b (c + 1) d && a > 0 && b > 0
 && c > 0 && d > 0, {a, b, c, d}, Integers]

The first case is:

$$0<b<a\land 0<c<\frac{-a b-b}{b-a}\land d=\frac{-a b c-a c}{-a b+a c-b c-b}$$

and the second case is:

$$b\geq a\land d=\frac{-a b c-a c}{-a b+a c-b c-b}$$

Let us now generate solutions for the first case, for example up to $a=50$:

a_max=50
for a in range(1,a_max+1):
    for b in range(1,a):
        for c in range(1,(-b-a*b)//(-a+b)):
            num = -a*c-a*b*c
            denom = -b-a*b+a*c-b*c
            d = num // denom
            if num == d * denom:
                print([a,b,c,d])

Some solutions we get in this first case are:

[2, 1, 1, 2]
[2, 1, 2, 8]
[3, 1, 1, 3]
[3, 2, 2, 3]
[3, 2, 4, 9]
[3, 2, 5, 15]
[3, 2, 6, 27]
[3, 2, 7, 63]
[4, 2, 2, 4]
...
[4, 3, 13, 104]
[4, 3, 14, 224]
[5, 2, 2, 5]
...
[50, 49, 2495, 1559375]
[50, 49, 2496, 2080000]
[50, 49, 2497, 3121250]
[50, 49, 2498, 6245000]

For the second case we can collect solutions for example up to $b=50$ and $c=50$ as follows:

b_max=50
c_max=50

for b in range(1,b_max+1):
    for a in range(1,b+1):
        for c in range(1,c_max):
            num = -a*c-a*b*c
            denom = -b-a*b+a*c-b*c
            d = num // denom
            if num == d * denom:
                print([a,b,c,d])

Some tuples $(a,b,c,d)$ retrieved for this second case are:

[1, 1, 1, 1]
[1, 1, 2, 2]
[1, 1, 3, 3]
...
[1, 1, 17, 17]
...
[50, 50, 48, 48]
[50, 50, 49, 49]

These are those solutions where $a=b$ and $c=d$.