Rubyで整数の計算
の編集
https://www2.hamajima.co.jp:443/~mathenet/wiki/index.php?Ruby%A4%C7%C0%B0%BF%F4%A4%CE%B7%D7%BB%BB
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
2008(Fractal)2学期
2008(Fractal)3学期
?????©?¢Â???ªÓ
??ªÑ???´???£?¢Â???ª±?¢ð?ªÂ??ª???¢ë????
??ªÑ??ªª??ª???©°??ªª?¡ß??¢î???ª???±???´?¢Â?
??©¬?????¡ß
?ª©??À??©??¢ð?ªÓ?¢ð??±?¢ð??´?ª´??¤?¢ð??¢Â?ª´¡ò?¡ò?ª£?¢Â?ª?
?ªÂ?¢í?ª¤?ªÂ?ª±?¢±?¡Þ
?ª´?¢Ä?ªÀ?ªÀ?¢Ä?©°??ª¡?¢ð?ªÂ?ªÀ??£?ª¤??´(2)
BracketName
DivisionByZero
FrontPage/練習
HyperCard
InterWikiName
InterWikiSandBox
KaleidoCycle
L-system
MenuBar
NETANETAAKASHI
POV-Ray
PukiWiki
RecentDeleted
Rubyで整数の計算
seito
ShortestAdditionChain
TaneAkashi
WikiName
WikiWikiWeb
Xaos
ソーラーボート製作
ノーベルメダルチョコ
;
2007高1生冬課題
4サイクルエンジンの模型
91の不思議
きれいな模様だけど(2)
けいはんなDEサイエンス
だまし缶
なんとかの部屋
イスラエル(星形)
エンジンの構造
ガウス生誕150周年
クアラルンプールの高校の壁画
ケーキの問題
ケプラー関連
サイクロイドの滑り台
シャッフルの記録
シンプルな作図問題
スライスモデル
ビリヤードのパズル
フィボナッチ数列の図形パズル
フラーレン
フラクタル3学期(クライマックス)
ヘルプ
マンデルブロ集合とπ4
ルーロー三角形食器?
Σのパズル
伊号-401
一般公開・科学教室
河崎テスト
階乗のなぞ
角の3等分線
角錐で多面体
関西テクノアイデアコンテスト(高校の部)の模様
京都府高等学校数学研究会
鏡で合わせ絵
行事(仮置き)
作図問題!
初期の落書き
新砂箱
進学環境に科学を伝える取組(紹介本一覧)
数学オリンピック解説会
正多面体さいころ
素数
多面体の硬さ
第2回勉強会
談話室バックナンバー01
中学生の問題(1)
等比数列の続き
統計学習用
二次関数バスケット
日経サイエンス
入れ子トリック
年齢当てマジック
平行・回転・対称移動シート
平成15年度 教員養成大学・学部等教官研究集会
平成16年度京都教育大学公開講座募集
平面図形(4)
平面図形(6)in国立科学博物館
平面図形の問題(1)
平面図形の問題(3)
勉強会(例会と銘打って良いのか?)
方べき
有機化学カードゲーム
有理数の樹
羊歯
立体の問題(1)
立体標識
立方体のパズル
立方体の展開図
...
COLOR(#006789){Ruby は最新のオブジェクト指向プログラミング言語のひとつです。整数の型が FIXNUM から BIGNUM へと,扱っている数の大きさによってシームレスに変わるため,1000桁ぐらいの整数も楽々計算できます。またmathn という数学ライブラリーを持っていて,有理数と複素数を扱うことが可能です。} COLOR(#006789){さらに,それに加えて,irb という対話的なツールがあって,コマンドラインから1行ずつ実行してみては結果を見ていくことができます。つまりプログラムを書かなくても簡単な計算が実行できるというわけです。電卓代わりですね。} COLOR(#006789){irb を使うにはコマンドラインから単に irb と打ち込むだけです。すると下のようにプロンプトが表示されるので,キーボードから入力していきます。} irb irb(main):001:0> COLOR(#006789){これでいろいろな計算ができます。ここでは数学ライブラリーを扱うので, require 'mathn' と入力します。} irb(main):001:0> require 'mathn' => true COLOR(#006789){これで 2/3 のような既約分数がそのまま扱えるようになり,既約でないものは自動的に約分が行われます。 } COLOR(#006789){それでは連分数を試してみましょう。次の式は 8/3 の連分数展開です。} 1+1/(1+1/(1+1/(1+1/(1+1/(1))))) COLOR(#006789){これを延々と繰り返していくと,sqrt(2) に漸近します。でも打ち込むのは面倒ですね。} COLOR(#006789){上の式をよく見ると入れ子になっていますから,再帰的な構造で表現できるはずです。つまり 1 + 1 / (1 + x) の x に,それ自身を代入していけばよさそう。} x = 1 100.times{x = 1 + 1/(1+x)} COLOR(#006789){これで100段の連分数が一気に計算できます。もっとも,このままでは巨大な分数式が表示されるだけで何がなんだか分からないので,浮動小数点数で表示させてみましょう。} x.to_f COLOR(#006789){これで 1.41421356...という値が得られるはずです。(小波)} COLOR(#006789){ちょっと追加。次の形なら黄金比が得られます} x = 1 100.times{x = 1 + 1 / x} ---- 連分数によるπの表現ですか.. πについては色々と読みましたが,授業に扱った教材として面白いものを見てきました. ラマヌジャンがどのようにしてあんな発想が浮かんだのか..... ---- COLOR(#fe891c){久しぶりのWikiネタですね。しかもrubyで計算。いやあ懐かしい・・・。暫く触ってませんでした。新しい職場のお隣が情報も教える方なので,rubyは如何?と訊いたら,知ってはいるけど・・・って言う返事。グラフィックはともかくお手頃だと思うのですが・・・。パイの連分数表示は,一昔二昔前の本ですがエリマオールという人の数の歴史とか言う本でたくさん見れます。一昔前なら最近新訂された?解析教程上下が面白いかも。} COLOR(#fe891c){早速試してみました。Macだと標準装備?なので,ターミナルを開けてirbと打ち込むだけで動きます。調子に乗って10000.times...としたら,戻ってきません。トホホ。} irb(main):011:0> x=1 => 1 irb(main):012:0> 1000.times{x=1+1/(1+x)} => 1000 irb(main):013:0> x.to_f /usr/lib/ruby/1.8/rational.rb:240: warning: Bignum out of Float range /usr/lib/ruby/1.8/rational.rb:240: warning: Bignum out of Float range => NaN でした。そりゃそうか。
タイムスタンプを変更しない
COLOR(#006789){Ruby は最新のオブジェクト指向プログラミング言語のひとつです。整数の型が FIXNUM から BIGNUM へと,扱っている数の大きさによってシームレスに変わるため,1000桁ぐらいの整数も楽々計算できます。またmathn という数学ライブラリーを持っていて,有理数と複素数を扱うことが可能です。} COLOR(#006789){さらに,それに加えて,irb という対話的なツールがあって,コマンドラインから1行ずつ実行してみては結果を見ていくことができます。つまりプログラムを書かなくても簡単な計算が実行できるというわけです。電卓代わりですね。} COLOR(#006789){irb を使うにはコマンドラインから単に irb と打ち込むだけです。すると下のようにプロンプトが表示されるので,キーボードから入力していきます。} irb irb(main):001:0> COLOR(#006789){これでいろいろな計算ができます。ここでは数学ライブラリーを扱うので, require 'mathn' と入力します。} irb(main):001:0> require 'mathn' => true COLOR(#006789){これで 2/3 のような既約分数がそのまま扱えるようになり,既約でないものは自動的に約分が行われます。 } COLOR(#006789){それでは連分数を試してみましょう。次の式は 8/3 の連分数展開です。} 1+1/(1+1/(1+1/(1+1/(1+1/(1))))) COLOR(#006789){これを延々と繰り返していくと,sqrt(2) に漸近します。でも打ち込むのは面倒ですね。} COLOR(#006789){上の式をよく見ると入れ子になっていますから,再帰的な構造で表現できるはずです。つまり 1 + 1 / (1 + x) の x に,それ自身を代入していけばよさそう。} x = 1 100.times{x = 1 + 1/(1+x)} COLOR(#006789){これで100段の連分数が一気に計算できます。もっとも,このままでは巨大な分数式が表示されるだけで何がなんだか分からないので,浮動小数点数で表示させてみましょう。} x.to_f COLOR(#006789){これで 1.41421356...という値が得られるはずです。(小波)} COLOR(#006789){ちょっと追加。次の形なら黄金比が得られます} x = 1 100.times{x = 1 + 1 / x} ---- 連分数によるπの表現ですか.. πについては色々と読みましたが,授業に扱った教材として面白いものを見てきました. ラマヌジャンがどのようにしてあんな発想が浮かんだのか..... ---- COLOR(#fe891c){久しぶりのWikiネタですね。しかもrubyで計算。いやあ懐かしい・・・。暫く触ってませんでした。新しい職場のお隣が情報も教える方なので,rubyは如何?と訊いたら,知ってはいるけど・・・って言う返事。グラフィックはともかくお手頃だと思うのですが・・・。パイの連分数表示は,一昔二昔前の本ですがエリマオールという人の数の歴史とか言う本でたくさん見れます。一昔前なら最近新訂された?解析教程上下が面白いかも。} COLOR(#fe891c){早速試してみました。Macだと標準装備?なので,ターミナルを開けてirbと打ち込むだけで動きます。調子に乗って10000.times...としたら,戻ってきません。トホホ。} irb(main):011:0> x=1 => 1 irb(main):012:0> 1000.times{x=1+1/(1+x)} => 1000 irb(main):013:0> x.to_f /usr/lib/ruby/1.8/rational.rb:240: warning: Bignum out of Float range /usr/lib/ruby/1.8/rational.rb:240: warning: Bignum out of Float range => NaN でした。そりゃそうか。
テキスト整形のルールを表示する