From: Take_tk Date: 2001-07-31T20:53:50+09:00 Subject: [ruby-list:30790] Re: int/int => float? たけ(tk)です。 [ruby-list:30788] Re: int/int => float? にて IKEGAMI Daisuke さん 曰く: > たとえば、数式処理ソフトウエア Mathematica は > int / int = rational > float / int = float > int / float = float > という方針をとっているようです。  理論的にはこれが一番いいですね。「ある種の普通の感覚」でも、10÷3は 3分の10でしょ、という気持ちもする。(僕の感覚ではこれが普通)。  小数で欲しければ(10/3).to_f、小数部分を切り捨てた答えが欲しければ (10/3).to_i、でやってね。という感じ。  −−  ところで、FixNum と Float との計算速度の違いを見てみると100万分の1. 5秒くらいの差になるらしい。倍率で言えば3倍くらいの差。インタプリタの解 釈の時間があるで、2倍未満かと思ったが、結構な差がある。しかし、100万 回計算するスクリプトでないと1秒の差が出ない、とも言える。  rational だとどれくらいになるんでしょうか?。 a = 10.0 start = Time.now (1..100000).each{|i| a *= 2.0 a *= 3.0 a *= 4.0 a *= 5.0 a *= 6.0 a /= 2.0 a /= 3.0 a /= 4.0 a /= 5.0 a /= 6.0 } puts Time.now - start # => 2.574 ・・100万分の2.7秒 puts a a = 10 start = Time.now (1..100000).each{|i| a *= 2 a *= 3 a *= 4 a *= 5 a *= 6 a /= 2 a /= 3 a /= 4 a /= 5 a /= 6 } puts Time.now - start # => 0.951 ・・ 100万分の0.9秒 puts a a = 10 start = Time.now (1..100000).each{|i| } puts Time.now - start # => 0.08 puts a Take_tk = KUMAGAI Hidetake たけ(tk)=熊谷秀武