All pastes #401886 Raw Edit

Testing Standard Dev

public ruby v1 · immutable
·published 2007-03-19 16:07 UTC
rendered paste body
class SDeviation		attr_reader :sum,:sumatory,:data,:average,:stddeviation,:strprocedure,:stddeviation_sqrt,:error,:error_size     		def initialize(data,error)				@sum = 0				@sumatory = 0				@data = data				@error = error				@error_size = @error.to_s.split('.')[1].size				@average = 0				@stddeviation = 0				@strprocedure = ''		end		def setError(v)				d = v-v.to_i				r = (d*10**(@error_size-1)-(d*10**(@error_size-1)).to_i)*10**-(@error_size-1)				rounded = ((r*(10**(@error_size-1))).round)*10**-(@error_size-1)				return v-r+rounded		end			def Average				@strprocedure = "$\\overline{x}=\\frac{\\sum_{i=1}^n x_i}{n}$\\\\\n"				@strprocedure += "$\\overline{x}=\\frac{\\sum_{i=1}^{#{@data.size}} x_i}{#{@data.size}}$\\\\\n"				@strprocedure += "$\\overline{x}=\\frac{"				@data.each do |e| 						@sum += e						@strprocedure += "#{e}+"				end				@strprocedure = @strprocedure[0..-2]				@average = setError(@sum / @data.size.to_f)				@strprocedure += "}{#{@data.size}}$\\\\\n"		end			def Sumatory				@strprocedure += "$\\sum_{i=1}^n (x_i-\\overline{x})^2$\\\\\n"				@strprocedure += "$\\sum_{i=1}^{#{@data.size}} (x_i-\\overline{x})^2=$\\\\\n"				@strprocedure += "$"				@data.each do |e| 						@sumatory += setError((e-@average)**2)						@strprocedure += "(#{e}-#{@average})^2+"				end				@strprocedure = @strprocedure[0..-2]				@strprocedure += "$\\\\\n"				@strprocedure += "$=#{@sumatory}$\\\\\n"		end			def StdDeviation				@stddeviation = setError(@sumatory / (@data.size.to_f - 1))				@stddeviation_sqrt = setError(Math::sqrt(@stddeviation))				@strprocedure += "$\\sigma^2 = \\frac{\\sum_{i=1}^n (x_i-\\overline{x})^2}{n-1}$\\\\\n"				@strprocedure += "$\\sigma^2 = \\frac{\\sum_{i=1}^{#{@data.size}} (x_i-\\overline{x})^2}{#{@data.size}-1}$\\\\\n"				@strprocedure += "$\\sigma^2 = \\frac{#{@sumatory}}{#{@data.size-1}}$\\\\\n"				@strprocedure += "$\\sigma^2 = #{@stddeviation}$\\\\\n"				@strprocedure += "$\\sigma = #{@stddeviation_sqrt}$\\\\\n"		end	end