From: moochan Date: 1999-03-11T18:40:43+09:00 Subject: [ruby-list:12761] Re: Making of Interval class. --VGh1LCAxMSBNYXIgMTk5OSAxODo0MDoxMSArMDkwMA== Content-Type: text/plain; charset=ISO-2022-JP moochan です. Interval クラスの最新版を添付します. # 何度もすみません^^;;; 変更内容確認のためのパッチも付けときます. --- interval.rb.org Thu Mar 11 15:53:03 1999 +++ interval.rb Thu Mar 11 17:24:30 1999 @@ -2,7 +2,7 @@ class Interval def initialize(beginning,ending,step=1) - reset!(beginning,ending,step) + reset(beginning,ending,step) end def reset(beginning,ending,step=1) @begin, @end, @step = beginning, ending, step @@ -52,14 +52,12 @@ yield clause(n) end end - def reverse - return set.reverse! - end + def reverse() return set.reverse! end def maximum(a,b) return a if a > b; return b end private :maximum def prime ary = [2] - for i in 3..Math.sqrt(maximum(max,min)) + for i in 3..Math.sqrt(maximum(max.abs,min.abs)) for j in ary if j > Math.sqrt(i) ary.push(i) --- moochan --VGh1LCAxMSBNYXIgMTk5OSAxODo0MDoxMSArMDkwMA== Content-Type: application/octet-stream; name="interval.rb" Content-Disposition: attachment; filename="interval.rb" Content-Transfer-Encoding: base64 IyEvdXNyL2xvY2FsL2Jpbi9ydWJ5CgpjbGFzcyBJbnRlcnZhbAogIGRlZiBpbml0aWFsaXplKGJl Z2lubmluZyxlbmRpbmcsc3RlcD0xKQogICAgcmVzZXQoYmVnaW5uaW5nLGVuZGluZyxzdGVwKQog IGVuZAogIGRlZiByZXNldChiZWdpbm5pbmcsZW5kaW5nLHN0ZXA9MSkKICAgIEBiZWdpbiwgQGVu ZCwgQHN0ZXAgPSBiZWdpbm5pbmcsIGVuZGluZywgc3RlcAogICAgQGRpcmVjdGlvbiA9IDEKICAg IEBkaXJlY3Rpb24gPSAtMSBpZiBAYmVnaW4gPiBAZW5kCiAgICBjaGVja19vZl9zdGVwCiAgZW5k CiAgZGVmIGNoZWNrX29mX3N0ZXAKICAgIHJhaXNlICJJbnRlcnZhbCBzdGVwIHZhbHVlIGlzbid0 IHBvc2l0aXZlLiIgaWYgQHN0ZXAgPD0gMAogICAgcmFpc2UgIkludGVydmFsIHN0ZXAgaXMgdG9v IGJpZy4iIGlmIChAZW5kIC0gQGJlZ2luKS5hYnMgPCBAc3RlcAogIGVuZAogIHByaXZhdGUgOmNo ZWNrX29mX3N0ZXAKICBkZWYgYmVnaW5uaW5nKCkgcmV0dXJuIEBiZWdpbiBlbmQKICBkZWYgZW5k aW5nKCkgcmV0dXJuIEBlbmQgZW5kCiAgZGVmIHN0ZXAoKSByZXR1cm4gQHN0ZXAgZW5kCiAgZGVm IHN0ZXA9KHN0ZXApIEBzdGVwID0gc3RlcDsgY2hlY2tfb2Zfc3RlcCBlbmQKICBkZWYgZGlyZWN0 aW9uKCkgcmV0dXJuIEBkaXJlY3Rpb24gZW5kCiAgZGVmIGNsYXVzZShuKQogICAgaWYgbiA+IDAK ICAgICAgQGluZGV4ID0gbiAjIHByaXZhdGUgaW5zdGFuY2UgdmFsdWFibGUKICAgICAgYW5zID0g QGJlZ2luICsgQGRpcmVjdGlvbiAqIEBzdGVwICogKG4gLSAxKQogICAgICByZXR1cm4gYW5zIGlm IEBkaXJlY3Rpb24gPT0gIDEgYW5kIEBiZWdpbiA8PSBhbnMgYW5kIGFucyA8PSBAZW5kCiAgICAg IHJldHVybiBhbnMgaWYgQGRpcmVjdGlvbiA9PSAtMSBhbmQgQGJlZ2luID49IGFucyBhbmQgYW5z ID49IEBlbmQKICAgIGVuZAogICAgcmFpc2UgIkVycm9yIGluIGJvdW5kcy4iCiAgZW5kCiAgZGVm IFtdKG4pIGNsYXVzZShuKSBlbmQKICBkZWYgbmV4dCgpIHJldHVybiBjbGF1c2UoaW5kZXggKyAx KSBlbmQKICBkZWYgcHJldigpIHJldHVybiBjbGF1c2UoaW5kZXggLSAxKSBlbmQKICBkZWYgaW5k ZXgoKSByZXR1cm4gQGluZGV4IGVuZAogIHByaXZhdGUgOmluZGV4CiAgZGVmIHNpemUoKSByZXR1 cm4gKEBlbmQgLSBAYmVnaW4pLmFicyAvIEBzdGVwICsgMSBlbmQKICBkZWYgbGVuZ3RoKCkgcmV0 dXJuIG1heCAtIG1pbiBlbmQKICBkZWYgbWluKCkgcmV0dXJuIEBiZWdpbiBpZiBAZGlyZWN0aW9u ID09ICAxOyByZXR1cm4gY2xhdXNlKHNpemUpIGVuZAogIGRlZiBtYXgoKSByZXR1cm4gQGJlZ2lu IGlmIEBkaXJlY3Rpb24gPT0gLTE7IHJldHVybiBjbGF1c2Uoc2l6ZSkgZW5kCiAgZGVmIHNldAog ICAgYXJ5ID0gW10KICAgIGZvciBuIGluIDEuLnNpemUKICAgICAgYXJ5LnB1c2goY2xhdXNlKG4p KQogICAgZW5kCiAgICByZXR1cm4gYXJ5CiAgZW5kCiAgZGVmIHN1bSgpIHJldHVybiAobWluICsg bWF4KSAqIHNpemUgLyAyIGVuZAogIGRlZiBhdmVyYWdlKCkgcmV0dXJuIHN1bSAvIHNpemUgZW5k CiAgZGVmIGVhY2gKICAgIGZvciBuIGluIDEuLnNpemUKICAgICAgeWllbGQgY2xhdXNlKG4pCiAg ICBlbmQKICBlbmQKICBkZWYgcmV2ZXJzZSgpIHJldHVybiBzZXQucmV2ZXJzZSEgIGVuZAogIGRl ZiBtYXhpbXVtKGEsYikgcmV0dXJuIGEgaWYgYSA+IGI7IHJldHVybiBiIGVuZAogIHByaXZhdGUg Om1heGltdW0KICBkZWYgcHJpbWUKICAgIGFyeSA9IFsyXQogICAgZm9yIGkgaW4gMy4uTWF0aC5z cXJ0KG1heGltdW0obWF4LmFicyxtaW4uYWJzKSkKICAgICAgZm9yIGogaW4gYXJ5CiAgICAgICAg aWYgaiA+IE1hdGguc3FydChpKQogICAgICAgICAgYXJ5LnB1c2goaSkKICAgICAgICAgIGJyZWFr CiAgICAgICAgZWxzZQogICAgICAgICAgYnJlYWsgaWYgaSAlIGogPT0gMAogICAgICAgIGVuZAog ICAgICBlbmQKICAgIGVuZAogICAgbmV3ID0gW10KICAgIGZvciBuIGluIHNldAogICAgICBtID0g bi5hYnMKICAgICAgbmV4dCBpZiBtID09IDAgb3IgbSA9PSAxCiAgICAgIGZsYWcgPSAwCiAgICAg IGZvciBqIGluIGFyeQogICAgICAgIGlmIG0gPT0gagogICAgICAgICAgZmxhZyA9IDAKICAgICAg ICAgIGJyZWFrCiAgICAgICAgZW5kCiAgICAgICAgaWYgbSAlIGogPT0gMAogICAgICAgICAgZmxh ZyA9IDEKICAgICAgICAgIGJyZWFrCiAgICAgICAgZW5kCiAgICAgIGVuZAogICAgICBuZXcucHVz aChuKSBpZiBmbGFnID09IDAKICAgIGVuZAogICAgcmV0dXJuIG5ldwogIGVuZAplbmQK --VGh1LCAxMSBNYXIgMTk5OSAxODo0MDoxMSArMDkwMA==--