- 締切済み
ruby の Σ計算
ruby で (i=o , 10 ) Σ i ** 2 を計算させるにはどうすればいいのでしょうか? ruby で 読み込んで計算させたいです。 0^2+1^2+3^2+....+2^10=??
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.3
>この書き方だと非効率なのでしょうか。 いや気にしたことがないな。単にSchemeっぽく書いた方がRubyには似合いそうだ、と思ったからこう書いただけで、そっちの書き方でも全く問題ない
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.2
俺のバカorz Q5655527を回答したつもりになってる。回答欄違ってた。 n = 10 r1 = Range.new(1,n,false) p r1.inject(0) {| result , item | result + item**2}
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.1
Rubyあんま使ってないけど、名前の付け方がSchemeっぽいので、他の言語のような使い方しないでざっくりと。小数の演算入ると有効桁数が絡んできそうなので整数だけで処理した。 n = 100 m = 2 r1 = Range.new(1,n,false) r2 = Range.new(1,m,false) r3 = Range.new(1,n - m,false) d1 = r1.inject(1) {| result , item | result * item} d2 = r2.inject(1) {| result , item | result * item} d3 = r3.inject(1) {| result , item | result * item} p (d1 / (d2 * d3))
補足
ありがとうございます^^ あれから試した所 a=1 b=0 while a <= 10 b = b + a ** 2 a = a + 1 end puts b この方法で解を出せました。 初心者なのでほかの記述の仕方が分からないのですが この書き方だと非効率なのでしょうか。