Python-lang-Multiplikation

Ich bin in der Notwendigkeit eines Algorithmus, der schneller als die aktuelle normale Python-lang-Multiplikation.

Versuchte ich zu finden, eine anständige Karatsuba Umsetzung, aber ich kann nicht.

def main():
    a=long(raw_input())
    if(a<0):
        a=a*-1
        a=((a*(a+1)/2)-1)
        print(-a)
    else:
        a=(a*(a+1))/2
        print(a)
main()

Wie Sie sehen, es ist nichts kompliziertes, nur ein paar Multiplikationen. Aber Sie verarbeitet werden zahlen mit bis zu 100000 Ziffern in unter 2,5 sec.

Möchte ich einige Schnipsel aus einer Funktion oder einfach nur ein link zu irgendeiner Umsetzung einer schnelleren Vermehrung Funktion, oder alles, was hilft.

Ich denke, dass Python bereits verwendet karatsuba unter der Motorhaube (ausgelöst durch eine Reihe von Ziffern)...
Python macht bereits Gebrauch karatsuba für die lange Multiplikation. Das drucken dauert wesentlich länger als die Multiplikation
Ist es ok, um print(hex(a))? Es wird viel schneller als print(a)
Haben Sie profiliert Ihre Anwendung? Sind Sie sicher, dass die Multiplikation ist der Engpass?
Ja , ich bin mir sicher, dass die Multiplikation ist das Nadelöhr, da muss ich drucken Sie es aus dem Dezimalsystem , das einzige, was noch zu verbessern Multiplikation der Geschwindigkeit.

InformationsquelleAutor Nedim | 2009-12-02

Schreibe einen Kommentar