From: Hideto ISHIBASHI Date: 2000-05-28T00:11:31+09:00 Subject: [ruby-list:22961] most efficient check-list implementation 石橋"rubyholic"秀仁です。 Ruby で効率のよいチェックリストの実現方法を教えてください。 1 つの要素について「チェック済」と「未チェック」の 1 bit です。 これを Ruby でやりたいので質問しました。 お知恵を拝借したいのは: (1) メモリ効率 (2) 時間効率 (速度) が最も良い方法は何か、という点です。 とくにメモリ効率に興味があります。理想的には 100 万ビットで、 120 kB くらいのメモリ使用量ですね (1B = 8bit)。 いちおう、ぼくの想像も書きます。 以下、「n : 要素の数 or ビット数」ということで。 [a] 全ビット 0 で初期化 (1) bitary = 2 ** n (2) bitary = Array.new(n, 0) [a] 全ビット 1 で初期化 (1) bitary = 2 ** n - 1 (2) bitary = Array.new(n, 1) [a] の (1) は、 ruby-man-1.4-jp/Integer.html | ビット操作において整数は無限の長さのビットストリングとみ | なすことができます. とあるので 0 でもいいと思ったのですが、実行中にビット幅を 「広げる」処理が気になりました。 もっと効率のいい方法はありますか? # まえに「小さなスクリプトの tips を集めよう」という話が # ありましたが、あれに加えてもらえますか (^^; -- Hideto "rubyholic" ISHIBASHI http://www.rr.iij4u.or.jp/~hideto-i/ blade clone (yaiba) development: http://www.rr.iij4u.or.jp/~hideto-i/rb/yaiba/index.html