Je pense que je l'ai vu il y a environ 10 ans ...
Examinons ceci comme sujet.
Tout d'abord, c'est un round-robin avec la mort cérébrale. La boucle suivante sera formée.
from math import factorial
for a in range(1,100):
for b in range(1,a):
for c in range(1,100):
if (a-b)%c != 0:
continue
d = int((a-b)/c)
if a - b/c == factorial(d):
print("{}-{}/{}={}!".format(a,b,c,d))
production.
2-1/1=1!
3-1/1=2!
3-2/1=1!
4-2/1=2!
4-3/1=1!
5-3/1=2!
5-4/1=1!
...
Lorsque $ c = 1 $, $ a-b / c $ et $ (a-b) / c $ ont la même valeur. De plus, quand $ d = 1,2 $, alors $ d! = D $, donc vous pouvez voir qu'il rencontre le sujet pour tout $ a, b = a-1 ou a-2 $. …… Mais ce n'est pas l'intention de ce Tonchi.
Rendez les conditions un peu plus strictes. Respectez le sujet et faites-le $ c \ geq 2, d \ geq 3 $.
from math import factorial
for a in range(1,1000):
for b in range(1,a):
for c in range(2,1000):
if (a-b)%c != 0:
continue
d = int((a-b)/c)
if d <= 2:
continue
if a - b/c == factorial(d):
print("{}-{}/{}={}!".format(a,b,c,d))
production.
25-5/5=4!
30-18/3=4!
40-32/2=4!
138-108/6=5!
230-220/2=5!
721-103/103=6!
728-416/52=6!
...
Cela ressemble plus à Tonchi. Probablement sans fin, mais pas prouvé. À première vue, je me demande s'il existe des cas où ** $ 3! $ Est la réponse **. De plus, étant donné que la quantité de calcul a augmenté, j'aimerais un algorithme qui génère $ a, b, c, d $ dans un temps plus court.
Cela peut être une matrice comme celle-ci:
\begin{pmatrix}
c & -1 \\
1 & -1
\end{pmatrix}
\times
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
c
\begin{pmatrix}
d! \\
d
\end{pmatrix}
Je vais le résoudre.
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
c
\begin{pmatrix}
c & -1 \\
1 & -1
\end{pmatrix}^{-1}
\times
\begin{pmatrix}
d! \\
d
\end{pmatrix}
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
c
\cdot
\frac{1}{-c+1}
\begin{pmatrix}
-1 & 1 \\
-1 & c
\end{pmatrix}
\times
\begin{pmatrix}
d! \\
d
\end{pmatrix}
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
\frac{c}{1-c}
\begin{pmatrix}
-d! + d \\
-d! + cd
\end{pmatrix}
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
\frac{c}{c-1}
\begin{pmatrix}
d!-d \\
d!-cd
\end{pmatrix}
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
\frac{cd}{c-1}
\begin{pmatrix}
(d-1)!-1 \\
(d-1)!-c
\end{pmatrix}
Parmi ceux-ci, la condition du sujet est une combinaison de $ c et d $ telle que $ a et b $ sont des entiers.
Prenons le cas de $ d = 3
Quand vous voulez que $ \ frac {cd} {c-1} $ soit un entier pour un $ d $, vous savez qu'au moins $ c = d + 1 $ le remplit. Donc, si vous corrigez c, la condition est
Puisque d peut prendre n'importe quel entier supérieur ou égal à 4, nous avons montré qu'il existe d'innombrables $ a, b, c, d $ qui satisfont le sujet.
Au fait, énumérons-le par programme.
from math import factorial
for d in range(4,100):
c = d+1
a = c*(factorial(d-1)-1)
b = c*(factorial(d-1)-c)
print("{}-{}/{}={}!".format(a,b,c,d))
production
25-5/5=4!
138-108/6=5!
833-791/7=6!
5752-5696/8=7!
45351-45279/9=8!
403190-403100/10=9!
3991669-3991559/11=10!
43545588-43545456/12=11!
518918387-518918231/13=12!
6706022386-6706022204/14=13!
93405311985-93405311775/15=14!
1394852659184-1394852658944/16=15!
22230464255983-22230464255711/17=16!
376610217983982-376610217983676/18=17!
6758061133823981-6758061133823639/19=18!
128047474114559980-128047474114559600/20=19!
2554547108585471979-2554547108585471559/21=20!
...
Le montant du calcul est également passé de $ O (n ^ 3) $ à $ O (n) $, et il peut être généré à grande vitesse. Je suis heureux.
De même pour $ c = 2 $, $ \ frac {cd} {c-1} $ est toujours un entier.
40-32/2=4!
230-220/2=5!
1428-1416/2=6!
10066-10052/2=7!
80624-80608/2=8!
725742-725724/2=9!
7257580-7257560/2=10!
...
Pour un $ d $, $ c $ a une limite inférieure de 2 et une limite supérieure de $ (d-1)! -1 $. (Quand $ c = (d-1)! $, $ B = 0 $, ce qui est juste avant que c ne puisse être élevé. En fait, $ b = 0 $ ne convient pas, donc $ (d-1) -1 Vous pouvez rechercher jusqu'à $)
Parmi ceux-ci, $ c = 2 ou d + 1 $ renvoie des entiers $ a, b $ pour tout $ d $, afin qu'il puisse être calculé à grande vitesse. Cependant, on ne peut pas dire que d'autres nombres seront certainement des entiers, de sorte que cette généralisation nécessitera probablement un examen plus approfondi.
Recommended Posts