Big-Integer hoch 2



  • Hallo,

    kennt jemand ein schnelleres Verfahren um eine Zahl aus mehreren Integern (Übertrag) mit 2 zu potenzieren, als diese mit sich selbst zu multiplizieren?

    ...bin schon mal gespannt. 😋
    Gruß Rudi



  • Wenn die Werte als Byte vorliegen, einfach alle Bits eins nach links shiften.

    bigint <<= 1;;



  • Das ist aber eine Multiplikation mit 2, keine Potenzierung 😉



  • OOps. Vergess es einfach.



  • rudiS schrieb:

    kennt jemand ein schnelleres Verfahren um eine Zahl aus mehreren Integern (Übertrag) mit 2 zu potenzieren, als diese mit sich selbst zu multiplizieren?

    Warum ist dir das zu langsam?



  • Hallo Ihr alle,

    stellt euch vor, ich nehm ein Integerarray mit 98 Wörter a 32 Bits. Dann will ich diese Zahl quatrieren. Wie lange wirds wohl dauern.

    Wenn Ihr mir nen schnellen Alogorithmus dafür findet, dann habt Ihr endlich eine Chance Eure Diskussion UNENDLICH + EINS auszuprobieren.
    Wie wärs, sich mal mit nem bodenständigen Problem zu befassen, bevor Walli wieder einschläft ( Gäääääääääääähn ).

    Also ich hoffe, ihr habt was, was nicht UNENDLICH lange dauert.

    Gruß Rudi.



  • rudiS schrieb:

    stellt euch vor, ich nehm ein Integerarray mit 98 Wörter a 32 Bits. Dann will ich diese Zahl quatrieren. Wie lange wirds wohl dauern.

    Wenn Ihr mir nen schnellen Alogorithmus dafür findet, dann habt Ihr endlich eine Chance Eure Diskussion UNENDLICH + EINS auszuprobieren.

    such nach "karatsuba", der ist lecker schnell und doch noch einfach genug, um ihn selber hinzukriegen.
    edit: wie ich gerade auf http://www.cs.cmu.edu/~cburch/251/karat/ lese, bringt karatsuba bei so kleinen zahlen noch nicht viel.


Anmelden zum Antworten