MSXで円周率
2026.02.11
中学生の頃に興味があったのは円周率の計算
きっかけは、テレビのスペシャル番組か何かで、ピラミッドの秘密に迫る話。ピラミッドの寸法か何かで円周率が出てきた。
へえ、そんな秘密が隠されていたんだと強い印象があった。
たまたまその数字かもしれないけどな。懐疑的な意見もある。当時はそんなことは知らない。ただテレビだけが情報源だった。
そしてもうひとつ、
これもタイトルは覚えていないけど、あるドラマで「担任の先生は、円周率を小数点以下100桁まで求めさせるし」というセリフ
そこで生徒が電卓をいじっているシーンがチラッと映ったから、電卓で求められるもんだと思い込んだわけ。
なーんにも知らないから、
電卓を適当にいじりながら求めた式、191.63714/60.999997=で円周率が求まるという説を主張していた。(笑)
小数点以下7桁までしか合ってないし、単純に割り算では求められない事も知らなかった。
そこで、当時使っていた学習教材のなんでも質問箱に問い合わせてみた。当時は疑問が生じても調べる手段が限られていた。
あまり学校の勉強とは関係なかったが、ちゃんと回答をもらった。
円を多角形に分割していって円周の長さを求める。
当時はサッパリ分からなかった。
もっと直接的な答えがほしかった。アルゴリズムとか。
いまでは、多角形をどんどん細かくしていけば円に近づいて、その長さが求まるという理解はできるが・・・
円周率を求めるには、なんとかの公式といって何種類もあり、arctanだの、微積分のわからない記号がついているような式があった。これらもサッパリわからなかった。中学校では無理だろうけど、高校になってもついていけなかった。
結局プログラムにどんなふうに展開したら良いのかもわからず、サンプルプログラムを読んでみて考えたりしていた。
多くの桁を扱うには、配列を使うということをそこで初めて学んだ。たとえば2桁ずつに区切ってひとつの配列とする。2桁ごとに計算して、桁上りの処理をする。
つまり、RAM空き容量によって計算可能な桁は制限があり、MSXのしかもRAM16KBの機種ではせいぜい何桁だったか、その上さらに計算時間もかかった。BASICではなおさら。
ライプニッツの公式とやらが一番簡単そうで、とりあえずそれでプログラムを作って試したが、この公式は収束が非常に遅いので実用的ではない。一晩放っておいて、そこで止めてしまった。
数学どころか算数もサッパリわからないけど、興味だけは有って、どうしようもない気持ちだった。
高校生になると図書館に学校帰りに寄れるようになった。いままでは本屋も無い町に住んでいて、情報に飢えていた。
学校の図書室、市の図書館、そして古本屋もある。なんて素晴らしい知の宝庫だ。
高校の汎用機(メインフレーム)に円周率の計算プログラムを入れて走らせてみたが、新しい機種のくせに時間がかかった。そもそもコンパイルからして遅い。計算途中の進行状況を表示するように作らなかったので、どこまで進んでいるのかわからない。無限ループかもしれない。結果がどうだったかは覚えてない。
ただ、割り算を小数点以下無限に計算して印刷するプログラムを試していたら、プリンタ用紙を数十枚使ってしまい、管理している先生に怒られた記憶はある。
当時の定番は1÷59999=だった。
MSXでの円周率計算は、雑誌に載っていたプログラムを打ち込んで試したところで興味が終わったような気がする。寝る前にスタートしておいて、朝起きたら結果が出ているかなという感じ。
きっかけは、テレビのスペシャル番組か何かで、ピラミッドの秘密に迫る話。ピラミッドの寸法か何かで円周率が出てきた。
へえ、そんな秘密が隠されていたんだと強い印象があった。
たまたまその数字かもしれないけどな。懐疑的な意見もある。当時はそんなことは知らない。ただテレビだけが情報源だった。
そしてもうひとつ、
これもタイトルは覚えていないけど、あるドラマで「担任の先生は、円周率を小数点以下100桁まで求めさせるし」というセリフ
そこで生徒が電卓をいじっているシーンがチラッと映ったから、電卓で求められるもんだと思い込んだわけ。
なーんにも知らないから、
電卓を適当にいじりながら求めた式、191.63714/60.999997=で円周率が求まるという説を主張していた。(笑)
小数点以下7桁までしか合ってないし、単純に割り算では求められない事も知らなかった。
そこで、当時使っていた学習教材のなんでも質問箱に問い合わせてみた。当時は疑問が生じても調べる手段が限られていた。
あまり学校の勉強とは関係なかったが、ちゃんと回答をもらった。
円を多角形に分割していって円周の長さを求める。
当時はサッパリ分からなかった。
もっと直接的な答えがほしかった。アルゴリズムとか。
いまでは、多角形をどんどん細かくしていけば円に近づいて、その長さが求まるという理解はできるが・・・
円周率を求めるには、なんとかの公式といって何種類もあり、arctanだの、微積分のわからない記号がついているような式があった。これらもサッパリわからなかった。中学校では無理だろうけど、高校になってもついていけなかった。
結局プログラムにどんなふうに展開したら良いのかもわからず、サンプルプログラムを読んでみて考えたりしていた。
多くの桁を扱うには、配列を使うということをそこで初めて学んだ。たとえば2桁ずつに区切ってひとつの配列とする。2桁ごとに計算して、桁上りの処理をする。
つまり、RAM空き容量によって計算可能な桁は制限があり、MSXのしかもRAM16KBの機種ではせいぜい何桁だったか、その上さらに計算時間もかかった。BASICではなおさら。
ライプニッツの公式とやらが一番簡単そうで、とりあえずそれでプログラムを作って試したが、この公式は収束が非常に遅いので実用的ではない。一晩放っておいて、そこで止めてしまった。
数学どころか算数もサッパリわからないけど、興味だけは有って、どうしようもない気持ちだった。
高校生になると図書館に学校帰りに寄れるようになった。いままでは本屋も無い町に住んでいて、情報に飢えていた。
学校の図書室、市の図書館、そして古本屋もある。なんて素晴らしい知の宝庫だ。
高校の汎用機(メインフレーム)に円周率の計算プログラムを入れて走らせてみたが、新しい機種のくせに時間がかかった。そもそもコンパイルからして遅い。計算途中の進行状況を表示するように作らなかったので、どこまで進んでいるのかわからない。無限ループかもしれない。結果がどうだったかは覚えてない。
ただ、割り算を小数点以下無限に計算して印刷するプログラムを試していたら、プリンタ用紙を数十枚使ってしまい、管理している先生に怒られた記憶はある。
当時の定番は1÷59999=だった。
MSXでの円周率計算は、雑誌に載っていたプログラムを打ち込んで試したところで興味が終わったような気がする。寝る前にスタートしておいて、朝起きたら結果が出ているかなという感じ。
トラックバックURL
トラックバック一覧
コメント一覧
コメント投稿
2026.02.11 11:13
|
