¿Puede tianhe-2 calcular 9 ^ 9 ^ 9?
en primer lugar lo siento por mal inglés! ¡No soy un hablante nativo! Como saben, Tianhe-2 es la computadora más rápida del mundo. Quiero saber si puede calcular 9 ^ 9 ^ 9. Por favor explique lo más simple que pueda (usted sabe que mi inglés es malo: D)
Ciertamente lo espero. Mi computadora puede.
- ¿Cómo entender la física?
- ¿Hay alguna manera de dar a una función sinusoidal un período específico sin incluir un escalar en la entrada?
- ¿Cómo puedo prepararme y participar en la Olimpiada Internacional de Física en Vancouver, BC?
- ¿Podría la teoría de la relatividad general hacer una revisión de su sistema de notación?
- ¿Cuál es una explicación intuitiva de por qué los relojes se ralentizan con la velocidad?
Nunca he trabajado con GMP y solo tuve unos minutos para prepararlo, así que es increíblemente feo, pero
[matemáticas] 9 ^ {(9 ^ {9})} = 9 ^ {387,420,489} [/ matemáticas]
No encontré inmediatamente una manera de exponer bignums con bignums, pero podemos calcular eso:
#include
#include
int main () {
unsigned long exp9_9 = 387420489;
// Me gusta ver que estoy dentro de los límites de los tipos numéricos
std :: cout << "Asegúrese de no truncar" << exp9_9 << std :: endl;
mpz_t res;
mpz_init (res);
mpz_ui_pow_ui (res, 9, exp9_9);
// Simplemente haz * algo * con el resultado para asegurarte de que no pueda
// posiblemente se optimice.
if (mpz_cmp_ui (res, exp9_9)> 0) {
std :: cout << "Bueno, duh" << std :: endl;
} más {
std :: cout << "Wat" << std :: endl;
}
}
Ahora corramos:
[correo electrónico protegido] : ~ / temp> g ++ pow9.cc -lgmp -o pow9 && time ./pow9
Asegúrese de no truncar 387420489
Bueno duh
0m11.484s reales
usuario 0m11.297s
sys 0m0.184s
Entonces, en mi computadora de escritorio, decente pero nada especial, toma alrededor de 11 segundos. Con suerte, Tianhe-2 puede hacerlo bastante más rápido.