miyamuko #2234(2007/08/16 13:28 GMT) [ xtal ] Rating0/0=0.00
前の桁で生成した値の頭にA..Zを付加するという戦略です。 無限桁に対応。A-Zの26進数以外もいけます。 ただ、メモリの消費量が激しいです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
ExcelNumber: class { + _chars: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + generate: method fiber { before: [""]; while (true) { before = generate_and_yield(before); } } - generate_and_yield: method(before) { r: []; _chars.split("") {|c| before {|b| n: c ~ b; r.push_back(n); yield n; } } return r; } } excelnum: ExcelNumber(); excelnum.generate.take(100).to_a.p; excelnum.chars = "abc"; excelnum.generate.take(100).to_a.p;
Rating0/0=0.00-0+
[ reply ]
miyamuko
#2234()
[
xtal
]
Rating0/0=0.00
ExcelNumber: class { + _chars: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + generate: method fiber { before: [""]; while (true) { before = generate_and_yield(before); } } - generate_and_yield: method(before) { r: []; _chars.split("") {|c| before {|b| n: c ~ b; r.push_back(n); yield n; } } return r; } } excelnum: ExcelNumber(); excelnum.generate.take(100).to_a.p; excelnum.chars = "abc"; excelnum.generate.take(100).to_a.p;Rating0/0=0.00-0+
[ reply ]