Berechnen der großen Exponentiation in Golang

7

Ich habe versucht, 2^100 in Golang zu berechnen. Ich verstehe das Limit des numerischen Typs und habe versucht, math/big package zu verwenden. Hier ist, was ich versucht habe, aber ich kann nicht herausfinden, warum es nicht funktioniert.

Ich habe Berechnung nach Potenzen von zwei Methode verwendet, um die Exponentiation zu berechnen.

%Vor%     
Ye Lin Aung 12.05.2015, 05:00
quelle

5 Antworten

8

Das BigInt-Paket ermöglicht Ihnen, x ^ y in der Protokollierungszeit zu berechnen (aus irgendeinem Grund ist dies der Fall) genannt exp). Alles, was Sie brauchen, ist nil als letzten Parameter zu übergeben.

%Vor%

Wenn Sie interessiert sind, wie Sie es selbst berechnen, werfen Sie einen Blick auf meine Implementierung:

%Vor%

oder spielen Sie damit auf Spielplatz gehen .

    
Salvador Dali 12.05.2015, 05:17
quelle
11

Zum Beispiel

%Vor%

Ausgabe:

%Vor%

Da es eine Zweierpotenz ist, könntest du auch eine kleine Verschiebung machen:

%Vor%

Ausgabe:

%Vor%     
peterSO 12.05.2015 05:14
quelle
1

Sie kehren sofort zurück, wenn power % 2 == 0 . Stattdessen möchten Sie nur das result von base ** (power /2) erhalten. Dann multipliziere result * result , und wenn power gerade ist, dann multipliziere base damit.

    
Santiago 12.05.2015 05:04
quelle
1

Um 2 ^ 100

zu berechnen %Vor%

Spielplatz

    
user4890052 12.05.2015 06:05
quelle
0
%Vor%     
Digital MobileForce 23.03.2018 03:06
quelle

Tags und Links