Beschreibung:
Nach dem kleinen Fauxpas beim ersten Snippet hier eine andere Implementierung.
Der sog. steinsche Algorithmus kommt ganz mit bitweisen Operatoren aus und bietet somit unter Umsetzung folgender Regeln eine bis zu 60% effizientere Berechnung gegenüber dem "normalen" euklidischen Algorithmus:
1. a und b gerade -> gcd(a, b) = 2gcd(a/2, b/2) 2. a und b ungerade -> gcd(a, b) = gcd([a-b]/2, b) 3. nur a gerade -> gcd(a, b) = gcd(a/2, b)
erstes Snippet: http://dotnet-snippets.de/dns/groesster-gemeinsamer-teiler-SID1361.aspx
Abgelegt unter: größter, gemeinsamer, Teiler, ggT, gcd, iterativ, Iteration, rekursiv, Rekursion, mathe, Euklid, euclid, binär, binary, bitweise, shift, bitshift, Stein, steinsche, Algorithmus, algorithm.
|