Qual è il valore massimo di * big.Int e massima precisione di * big.Rat?Golang, math/grande: qual è il valore massimo di * big.Int
risposta
Qui ci sono le definizioni delle strutture:
// A Word represents a single digit of a multi-precision unsigned integer.
type Word uintptr
type nat []Word
type Int struct {
neg bool // sign
abs nat // absolute value of the integer
}
type Rat struct {
// To make zero values for Rat work w/o initialization,
// a zero value of b (len(b) == 0) acts like b == 1.
// a.neg determines the sign of the Rat, b.neg is ignored.
a, b Int
}
non c'è limite esplicito. Il limite sarà la tua memoria o, teoricamente, la dimensione massima dell'array (2^31 o 2^63, a seconda della tua piattaforma).
Se hai dubbi pratici, si potrebbe essere interessati dai test effettuati in http://golang.org/src/pkg/math/big/nat_test.go, per esempio quello in cui 10^100000 è valutato.
E si può facilmente eseguire questo tipo di programma:
package main
import (
"fmt"
"math/big"
)
func main() {
verybig := big.NewInt(1)
ten := big.NewInt(10)
for i:=0; i<100000; i++ {
verybig.Mul(verybig, ten)
}
fmt.Println(verybig)
}
(se si desidera che venga eseguito abbastanza veloce per Go Playground, use a smaller exponent than 100000
)
Il problema non sarà la dimensione massima, ma la memoria utilizzata e il tempo impiegato da tali calcoli.
Quando si utilizza 'math/big', si dovrebbe cercare di evitare inutili allocazioni' big.Int' (in particolare se escono dall'heap). Quanto sopra può essere reso più veloce e più semplice eliminando 'temp' facendo semplicemente il body del loop:' verybig.Mul (verybig, ten) '. –
Grazie a @DaveC. Applica il tuo suggerimento. –
- 1. Qual è il valore massimo di NSInteger?
- 2. Qual è il valore massimo di un numero in Lua?
- 3. Qual è il valore massimo per Java Durata
- 4. Qual è il valore intero massimo in Flex?
- 5. Qual è il valore massimo per tinyint (2) in MySQL?
- 6. Qual è il valore massimo per una chiave CouchDB composta?
- 7. Qual è il numero massimo di connessioni?
- 8. Qual è il significato dell'avviso GCC "valore etichetta caso supera il valore massimo per tipo"?
- 9. Qual è il ritardo massimo per setInterval?
- 10. Qual è il massimo. lunghezza di un uid di Facebook?
- 11. Qual è il valore massimo consentito di "Dimensione massima pool" nella stringa di connessione sql
- 12. Trovare il valore massimo massimo di scrollTop su un div?
- 13. z-index valore massimo
- 14. Qual è il valore massimo del pixel delle proprietà di larghezza e altezza CSS?
- 15. qual è il valore massimo di MAXVALUE in sequenza in oracle?
- 16. Qual è il livello massimo di ereditarietà in java?
- 17. Qual è il numero massimo di blocchi possibile in CUDA?
- 18. Qual è il numero massimo di connessioni cURL impostato da?
- 19. Qual è il numero massimo di file per jar?
- 20. Qual è il valore di REQUEST_CHECK_SETTINGS?
- 21. qual è il valore predefinito di char?
- 22. Qual è actaully il valore di UIApplicationBackgroundFetchIntervalMinimum?
- 23. server http golang, non è possibile ottenere il valore postale
- 24. Qual è il nome completo per `iota` in golang?
- 25. Qual è il debuglevel massimo per un httplib Python
- 26. Qual è il limite massimo per group_concat_max_len in MySQL?
- 27. Qual è il minimo/massimo delle unità vh?
- 28. Calendario di Java.DAY_OF_WEEK_IN_MONTH valore massimo è 6. È corretto?
- 29. Valore massimo di unsigned char
- 30. Golang attributo XML e il valore
che sta downvoting tutte queste domande e risposte sul tag go? questa domanda è totalmente valida! – thwd