Mercurial > op > Looping
annotate Looping.rb @ 12:dab1e83799e4 >>178 tip
R版のソースコードを追加。
author | "uncorrelated zombie" <uncorrelated@yahoo.co.jp> |
---|---|
date | Sat, 04 Feb 2012 04:10:01 +0900 |
parents | 30da8c1da4d4 |
children |
rev | line source |
---|---|
5
861b93741d60
id:sumim氏のSmalltalk版とRuby版のコードを追加。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
1 #!/usr/bin/env ruby |
861b93741d60
id:sumim氏のSmalltalk版とRuby版のコードを追加。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
2 class Looping |
4
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
3 def initialize() |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
4 @n0 = 0 |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
5 end |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
6 def calc(n) |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
7 n1 = @n0 + (1 - 2*(n%2)) |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
8 @n0 = n |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
9 n1 |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
10 end |
5
861b93741d60
id:sumim氏のSmalltalk版とRuby版のコードを追加。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
11 end |
861b93741d60
id:sumim氏のSmalltalk版とRuby版のコードを追加。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
12 |
4
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
13 if __FILE__ == $0 |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
14 s = Looping.new |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
15 c = 0 |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
16 n = 1 |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
17 t1 = Time.now |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
18 while c<2147483647 |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
19 n = s.calc(n) |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
20 c+=1 |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
21 end |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
22 t2 = Time.now |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
23 puts "#{n} Ruby\t#{t2-t1}" |
d788c88f41bd
Rubyのベンチマークを追加。ソースコードは2ch.netの>>178からコピー。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
24 end |