級数の極限を求めようというのである。いうコードでやってみた。進表現された浮動小数点数を扱うことができる。クロージャとしての性質を使っている。一桁増やしてみると、第1000万項、第1000万1項はそれぞれ0.596383954822163458431155651252054767E00.656281010474278423000546156574263931E0でなかなか収束しない。結果が出るのは明日の朝になるだろう。つけっぱなしにして計算させたのだけれど、何故かコマンドプロンプトが消えていた...。(AM8:49)よく考えたら、こんな冗長なコードにする必要はなかった。#=>0.661072248003938175801125710276193031E0これでいいな。これで、10億項目、10億1項目がそれぞれ0.602858834973980440783949444112709997E00.649806130500742268711055098195187070799508852E0となる。3.46時間)かかった。これでは時間がかかりすぎて、収束の値などというところまでいかない。根本的に別の方法でやらないと。C言語でやるという手もあるが、C言語の浮動小数点演算は何桁まであるのか。上のリンク先記事の収束値とだいたい同じ値が出る。場合と比べてみると、既に最後の方の桁が信用できないことがわかる。このあたりは計算上の分母がまったく不正確なので、殆ど無意味だと思う。int型の範囲を超えてしまう。__int64型(非標準)を使う(参照)。1000億項目、1000億1項目はそれぞれ0.6070316750993780.645633290380083と求められるが、上に出した平均値ほどの意味しかあるまい。いずれにせよ、これ以上のスピード(Ruby)あるいは精度(C言語)を得るには、別の考え方をするしかない。元記事はどうやってあれだけの桁数を計算しているのか、自分には見当もつかない。教えてもらいたいものだが。作る...2018-11-24浮動小数点演算の謎30年前の名著「数値計算の常識」を読んでたらBASICで0.01を1000...2018-02-13反転で作る互い違い(Ruby)アルゴリズム・パズルです。数字を表示させることを考えます。(21)月別アーカイブ参加グループRubyはてなブログをはじめよう!obelisk2さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。