[RUBY] 10² ist 8-stellig

Dieser Artikel ist eine Fortsetzung des folgenden Artikels. Kann die Anzahl der Ziffern Math.log10 (x) .floor + 1 sein? -Qiita

Wie viele Stellen hat $ 10 ^ {9942067} $ in Dezimalzahl [^ ans]?

[^ ans]: Natürlich sind es 9942068 Ziffern ohne Berechnung.

Einfach mit Ruby.

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

e? Ist es 8 Ziffern? Was meinst du?

Außerdem gibt es einige seltsame Warnungen. Oder ist diese Warnung ein Hinweis? Kurz gesagt, ist es zu groß, um richtig zu berechnen? Aber es ist kein Fehler.

Möchten Sie .to_s.length nehmen und ausführen? Nein, warten Sie, wenn eine große Ganzzahl angezeigt wird, ist das Terminal wahrscheinlich für eine Weile nicht mehr funktionsfähig. Ja mach mal.

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

Was? Was ist Float :: INFINITY? Was ist, wenn es "positive Unendlichkeit von Gleitkommazahlen" wird, obwohl es die ganzzahlige Potenz einer ganzen Zahl ist?

Ist die Antwort "8" die Anzahl der Zeichen in "Unendlichkeit"?

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

Nach alldem.

Übrigens kann $ 10 ^ {9942066} $, dessen Exponent eins kleiner ist, mit 10 ** 9942066 berechnet werden. Dies hängt von der Version von Ruby ab. Dieser Artikel basiert auf Ruby 2.7.1.

"**" soll eine Spezifikation sein, die die Berechnung abbricht, eine Warnung ausgibt und "Float :: INFINITY" zurückgibt, wenn das Ergebnis wahrscheinlich eine zu große Ganzzahl ist. Wenn eine solche Situation in einem praktischen Programm wahrscheinlich auftritt, erscheint es daher notwendig, das Berechnungsergebnis vor der Verwendung mit "endlich" zu überprüfen.

Wenn Sie wirklich $ 10 ^ {9942067} $ berechnen möchten, können Sie dies mit 10 ** 9942066 * 10 berechnen.

Recommended Posts

10² ist 8-stellig
Was ist Cubby?
Was ist null? ]]
Das Ausprobieren mit Ressourcen ist praktisch
Was ist java
Was ist Schlüsselumhang?
Was ist Maven?
Was ist Jackson?
Was ist Selbst
Was ist Jenkins?
Was ist ArgumentMatcher?
Was ist IM-Jonglieren?
Was ist params
Was ist SLF4J?
Was ist Fassade? ??
Was ist Java <>?
Was ist Gradle?
Was ist POJO?
Array ist Objekt
Was ist java
Was ist centOS?
Was ist RubyGem?
Was ist before_action?
Was ist Docker?
Was ist Byte?
Was ist Tomcat?