[RUBY] 10⁹⁹⁴²⁰⁶⁷ correspond à 8 chiffres

Cet article est une suite de l'article ci-dessous. Le nombre de chiffres peut-il être Math.log10 (x) .floor + 1? -Qiita

Maintenant, combien de chiffres font 10 $ ^ {9942067} $ en décimal [^ ans]?

[^ ans]: Bien sûr, il s'agit de 9942068 chiffres sans calcul.

Facile avec Ruby.

irb(main):001:0> (10 ** 9942067).to_s.length
(irb):1: warning: in a**b, b may be too big
=> 8

e? S'agit-il de 8 chiffres? Que voulez-vous dire?

En outre, il y a quelques avertissements étranges. Ou cet avertissement est-il un indice? Bref, est-ce trop gros pour calculer correctement? Mais ce n'est pas une erreur.

Voulez-vous prendre .to_s.length et l'exécuter? Non, attendez, si un entier énorme est affiché, le terminal risque de devenir inopérant pendant un certain temps. Nous le ferons.

irb(main):001:0> 10 ** 9942067
(irb):1: warning: in a**b, b may be too big
=> Infinity

Quoi? Qu'est-ce que Float :: INFINITY? Et si "une infinité positive de nombres à virgule flottante" même si c'est la puissance entière d'un entier?

La réponse "8" est-elle le nombre de caractères dans ʻInfinity`?

irb(main):002:0> Float::INFINITY.to_s
=> "Infinity"

Après tout.

Au fait, $ 10 ^ {9942066} $, dont l'exposant est un plus petit, peut être calculé par «10 ** 9942066». Cela dépend de la version de Ruby. Cet article est basé sur Ruby 2.7.1.

** est dit être une spécification qui abandonne le calcul, émet un avertissement et retourne Float :: INFINITY lorsque le résultat est susceptible d'être un entier trop grand. Par conséquent, lorsqu'une telle situation est susceptible de se produire dans un programme pratique, il semble nécessaire de vérifier le résultat du calcul avec «fini?» Avant de l'utiliser.

Si vous voulez vraiment calculer 10 $ ^ {9942067} $, vous pouvez le calculer avec 10 ** 9942066 * 10.

Recommended Posts

10⁹⁹⁴²⁰⁶⁷ correspond à 8 chiffres
Qu'est-ce que Cubby
Qu'est-ce qui est nul? ]
essayer avec des ressources est pratique
Qu'est-ce que 'java
Qu'est-ce que Keycloak
Qu'est-ce que maven?
Qu'est-ce que Jackson?
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que ArgumentMatcher?
Qu'est-ce que IM-Juggling?
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
Qu'est-ce que la façade? ??
Qu'est-ce que Java <>?
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Le tableau est un objet
Qu'est-ce que 'java
Qu'est-ce que centOS
Qu'est-ce que RubyGem?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat