greatest-common-divisor

___ tag123algorithm ___ Ein Algorithmus ist eine Folge wohldefinierter Schritte, die eine abstrakte Lösung für ein Problem definieren. Verwenden Sie dieses Tag, wenn sich Ihr Problem auf den Algorithmusentwurf bezieht. ___ qstnhdr ___ Was ist der schnellste Weg, um zu überprüfen, ob zwei gegebene Zahlen Co-Rime sind? ___ tag123numbertheory ___ Zahlentheorie ist jener Zweig der Mathematik, der die Eigenschaften von Zahlen untersucht, typischerweise ganze Zahlen. ___ qstntxt ___

Eine Möglichkeit besteht darin, ihr gcd zu berechnen und zu prüfen, ob es 1 ist.

Gibt es einen schnelleren Weg?

    
___ tag123greatestcommandivisor ___ Der größte gemeinsame Teiler (GCD) von zwei oder mehr ganzen Zahlen ungleich Null ist die größte positive ganze Zahl, die die Zahlen ohne einen Rest teilt. ___ answer1483444 ___

Der euklidische Algorithmus (berechnet %code% ) ist sehr schnell. Wenn zwei Zahlen zufällig aus %code% gezogen werden, beträgt die durchschnittliche Anzahl der Schritte zum Berechnen ihrer %code% %code% . Die durchschnittliche Rechenzeit für jeden Schritt ist quadratisch in der Anzahl der Ziffern.

Es gibt Alternativen, die etwas besser funktionieren (d. h. jeder Schritt ist in der Anzahl der Ziffern subquadratisch), aber sie sind nur bei sehr großen ganzen Zahlen wirksam. Siehe zum Beispiel Über Schönhages Algorithmus und subquadratische ganzzahlige gcd-Berechnung .

    
___ answer1483586 ___

Wenn Sie auf einer Maschine arbeiten, deren Divisionen / Residuen wesentlich teurer sind als Shifts, sollten Sie binary GCD in Erwägung ziehen .

    
___
4
Antworten

Numpy gcd-Funktion

Hat numpy irgendwo in seiner Modulstruktur eine gcd Funktion? Ich kenne fractions.gcd , denke aber, dass ein numpy -Äquivalent möglicherweise schneller ist und mit numpy -Datentypen besser funktioniert. Ich konnte auf Google...
22.03.2013, 11:38
2
Antworten

Was ist der schnellste Weg, um zu überprüfen, ob zwei gegebene Zahlen Co-Rime sind?

Eine Möglichkeit besteht darin, ihr gcd zu berechnen und zu prüfen, ob es 1 ist. Gibt es einen schnelleren Weg?     
27.09.2009, 11:39