Wie komplex ist die Berechnung der Bitgröße von zwei Ganzzahlen und in binärer Darstellung ?n x n
Eine Möglichkeit, dies zu tun, besteht darin, berechnen, indem eine Näherung von mit ausreichender Genauigkeit berechnet wird . Es scheint, dass die Berechnung von mit Genauigkeitsbits in wobei die Zeit ist, die benötigt wird, um das Produkt von zwei ganzen Zahlen der Länge zu berechnen . Dies ergibt einen (nicht besonders einfachen) Komplexitätsalgorithmus von ungefähr wenn eine Grenze für die Bitgröße von und (wenn ich keinen Fehler gemacht habe).log 2 ( x ) log 2 ( x ) k O ( M ( k ) log k ) M ( k ) k O ( s log 2 s ) s x n
Können wir schlagen, wobei die Größe von und (falls sie vergleichbare Größen haben)? Gibt es einen einfachen Algorithmus, um diese Komplexität oder besser zu erreichen?s x n
Hinweis: Ich interessiere mich für die Komplexität eines theoretischen Modells wie Turing-Maschinen.
Antworten:
[Bearbeiten] Wie vorgeschlagen, bearbeite ich meine Antwort, um weitere Details anzugeben.
Die Antwort auf meine zweite Frage lautet nein :
Vorschlag. Das Berechnen von bis zur Genauigkeit ist mindestens so schwierig wie das Berechnen der Bitgröße von .k x 2 klog(x) k x2k
Beweis. Seibezeichnen die Bitgröße einer ganzen Zahl . Beachten Sie zunächst, dass für eine nichtnegative Ganzzahl die Bitgröße von beträgt .y y y 1 + ⌊ log y ⌋|y| y y y 1+⌊logy⌋
Also . Jetzt ist verschoben Positionen nach links. Somit kann man mit der Genauigkeit berechnen, indem man einfach von der Bitgröße von subtrahiert und die Ergebnis- Positionen nach rechts verschiebt. 2 k log(x)log(x)klog(x)k1 x 2 k k∣∣x2k∣∣=1+⌊2klogx⌋ 2klog(x) log(x) k log(x) k 1 x2k k
quelle