Mercurial > op > Looping
annotate Looping.lua @ 12:dab1e83799e4 >>178 tip
R版のソースコードを追加。
author | "uncorrelated zombie" <uncorrelated@yahoo.co.jp> |
---|---|
date | Sat, 04 Feb 2012 04:10:01 +0900 |
parents | b952a5d72c9f |
children |
rev | line source |
---|---|
11
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
1 -- |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
2 -- This source code was copied from http://hibari.2ch.net/test/read.cgi/tech/1297491072/414 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
3 -- |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
4 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
5 Looping = {} |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
6 Looping_mt = { __index=Looping } |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
7 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
8 function Looping.new() |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
9 tmp = {} |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
10 tmp.n0 = 0 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
11 return setmetatable (tmp, Looping_mt) |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
12 end |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
13 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
14 function Looping:calc(n) |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
15 n1 = self.n0 + (1 - 2*(n%2)) |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
16 self.n0 = n |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
17 return n1 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
18 end |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
19 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
20 s = Looping.new() |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
21 c = 0 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
22 n = 1 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
23 t1 = os.time() |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
24 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
25 while c<2147483647 do |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
26 n = s:calc(n) |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
27 c = c + 1 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
28 end |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
29 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
30 t2 = os.time() |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
31 -- Luaにマイクロ秒を計測するAPIが無いため精度に劣る。 |
b952a5d72c9f
Luaのソースコードを追加。2ch.netからの転載。
"uncorrelated zombie" <uncorrelated@yahoo.co.jp>
parents:
diff
changeset
|
32 print(n, "Lua\t", t2-t1) |