Ich glaube, ich habe es vor ungefähr 10 Jahren gesehen ...
Lassen Sie uns dies als Thema untersuchen.
Zuallererst ist es ein Round-Robin mit Hirntod. Die folgende Schleife wird gebildet.
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))
Ausgabe.
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!
...
Wenn $ c = 1 $ ist, haben sowohl $ a-b / c $ als auch $ (a-b) / c $ den gleichen Wert. Wenn $ d = 1,2 $ ist, dann ist $ d! = D $, sodass Sie sehen können, dass es das Thema für jedes $ a, b = a-1 oder a-2 $ erfüllt. …… Aber das ist nicht die Absicht dieses Tonchi.
Machen Sie die Bedingungen etwas strenger. Respektieren Sie das Thema und machen Sie es zu $ 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))
Ausgabe.
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!
...
Es wird mehr wie Tonchi. Wahrscheinlich endlos, aber nicht bewiesen. Auf den ersten Blick frage ich mich, ob es Fälle gibt, in denen ** $ 3! $ Die Antwort ist **. Da der Rechenaufwand gestiegen ist, möchte ich auch einen Algorithmus, der $ a, b, c, d $ in kürzerer Zeit generiert.
Dies kann eine Matrix wie diese sein:
\begin{pmatrix}
c & -1 \\
1 & -1
\end{pmatrix}
\times
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
c
\begin{pmatrix}
d! \\
d
\end{pmatrix}
Ich werde es lösen.
\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}
Von diesen ist die Bedingung des Subjekts eine Kombination von $ c und d $, so dass $ a und b $ ganze Zahlen sind.
Betrachten Sie den Fall von $ d = 3
Wenn Sie möchten, dass $ \ frac {cd} {c-1} $ eine Ganzzahl für ein $ d $ ist, wissen Sie, dass mindestens $ c = d + 1 $ diese ausfüllt. Wenn Sie also c korrigieren, lautet die Bedingung
Da d jede ganze Zahl größer oder gleich 4 annehmen kann, haben wir gezeigt, dass es unzählige $ a, b, c, d $ gibt, die das Subjekt erfüllen.
Lassen Sie sie uns übrigens programmatisch auflisten.
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))
Ausgabe
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!
...
Der Berechnungsbetrag hat sich ebenfalls von $ O (n ^ 3) $ zu $ O (n) $ geändert und kann mit hoher Geschwindigkeit generiert werden. Ich bin glücklich.
In ähnlicher Weise ist $ \ frac {cd} {c-1} $ für $ c = 2 $ immer eine ganze Zahl.
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!
...
Für ein $ d $ hat $ c $ eine Untergrenze von 2 und eine Obergrenze von $ (d-1)! -1 $. (Wenn $ c = (d-1)! $, $ B = 0 $, kurz bevor c erhöht werden kann. Tatsächlich ist $ b = 0 $ ungeeignet, also $ (d-1) -1 Sie können bis zu $) nachschlagen
Von diesen gibt $ c = 2 oder d + 1 $ ganze Zahlen $ a, b $ für jedes $ d $ zurück, so dass es mit hoher Geschwindigkeit berechnet werden kann. Es kann jedoch nicht gesagt werden, dass andere Zahlen definitiv ganze Zahlen sein werden, so dass diese Verallgemeinerung wahrscheinlich weitere Überlegungen erfordert.
Recommended Posts