[#26295] tail -f のように読み続ける方法は? — Kazuhiro NISHIYAMA <zn@...>

tail -fのようにだんだん大きくなるファイルを読み込み続けるのは

22 messages 2000/12/03
[#26301] Re: tail -f のように読み続ける方法は? — matz@... (Yukihiro Matsumoto) 2000/12/03

まつもと ゆきひろです

[#26303] Re: tail -f のように読み続ける方法は? — WATANABE Tetsuya <tetsu@...> 2000/12/04

渡辺哲也です。

[#26323] Re: tail -f のように読み続ける方法は? — Kazuhiro NISHIYAMA <zn@...> 2000/12/04

On Mon, 4 Dec 2000 10:18:47 +0900

[#26324] Re: tail -f のように読み続ける方法は? — matz@... (Yukihiro Matsumoto) 2000/12/04

まつもと ゆきひろです

[#26331] Re: tail -f のように読み続ける方法は? — nobu.nakada@... 2000/12/04

なかだです。

[#26346] Re: tail -f のように読み続ける方法は? — matz@... (Yukihiro Matsumoto) 2000/12/05

まつもと ゆきひろです

[#26362] Re: tail -f のように読み続ける方法は? — とみたまさひろ <tommy@...> 2000/12/05

とみたです。

[#26368] Re: tail -f のように読み続ける方法は? — matz@... (Yukihiro Matsumoto) 2000/12/06

まつもと ゆきひろです

[#26313] 並行するスレッドの記述法について — Kenya OGATA <ind.onosetu1@...>

おがたといいます。

30 messages 2000/12/04
[#26332] Re: 並行するスレッドの記述法について — nobu.nakada@... 2000/12/04

なかだです。

[#26335] Re: 並行するスレッドの記述法について — Kenya Ogata <k_ogata@...> 2000/12/04

おがたです。なかださんコメントありがとうございます。

[#26337] Re: 並行するスレッドの記述法について — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/12/05

なかだです。

[#26338] ruby-GD — Akira Muraki <a-muraki@...> 2000/12/05

村木@日立ITです。

[#26354] Re: ruby-GD — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/12/05

なかだです。

[#26355] Re: ruby-GD — Akira Muraki <a-muraki@...> 2000/12/05

村木です

[#26356] Re: ruby-GD — "U.Nakamura" <usa@...> 2000/12/05

こんにちは、なかむら(う)です。

[#26415] cgi.rb で InsecureOperation — Takeshi Komiya <katsuwo@...>

25 messages 2000/12/07

[#26536] ファイル名が文字化け — KUROSAWA Takashi <tabby@...>

Tabby as くろさわ@秩父です。

21 messages 2000/12/14
[#26537] Re: ファイル名が文字化け — WATANABE Hirofumi <eban@...> 2000/12/15

わたなべです.

[#26554] Hash.new — Takao KAWAMURA <kawamura@...>

Hash.newの挙動について、理解できないことがありましたので、教

47 messages 2000/12/16
[#26555] Re: Hash.new — gotoken@... (GOTO Kentaro) 2000/12/16

ごとけんです

[#26559] Re: Hash.new — nobu.nakada@... 2000/12/16

なかだです。

[#26561] Re: Hash.new — gotoken@... (GOTO Kentaro) 2000/12/16

In message "[ruby-list:26559] Re: Hash.new"

[#26564] Re: Hash.new — matz@... (Yukihiro Matsumoto) 2000/12/16

まつもと ゆきひろです

[#26565] Re: Hash.new — gotoken@... (GOTO Kentaro) 2000/12/16

In message "[ruby-list:26564] Re: Hash.new"

[#26566] Re: Hash.new — Yasushi Shoji <yashi@...> 2000/12/16

At Sun, 17 Dec 2000 02:23:14 +0900,

[#26567] Re: Hash.new — gotoken@... (GOTO Kentaro) 2000/12/16

In message "[ruby-list:26566] Re: Hash.new"

[#26569] Re: Hash.new — Yasushi Shoji <yashi@...> 2000/12/16

At Sun, 17 Dec 2000 03:28:55 +0900,

[#26576] Re: Hash.new — matz@... (Yukihiro Matsumoto) 2000/12/17

まつもと ゆきひろです

[#26605] [Q] Oracle PL/SQL with bind vars — Hideto ISHIBASHI <hideto-i@...4u.or.jp>

石橋秀仁です。

28 messages 2000/12/18
[#26642] Re: [Q] Oracle PL/SQL with bind vars — Yoshida Masato <yoshidam@...> 2000/12/19

よしだです

[#26656] Re: [Q] Oracle PL/SQL with bind vars — Hideto ISHIBASHI <hideto-i@...4u.or.jp> 2000/12/20

石橋秀仁です。よしださん、リプライありがとうございます。

[#26696] Re: [Q] Oracle PL/SQL with bind vars — Yoshida Masato <yoshidam@...> 2000/12/21

よしだです

[#26701] Re: [Q] Oracle PL/SQL with bind vars — Hideto ISHIBASHI <hideto-i@...4u.or.jp> 2000/12/21

石橋秀仁です。こんばんは。

[#26703] 一行野郎と Ruby について (Re: [Q] Oracle PL/SQL with bind vars) — Hideto ISHIBASHI <hideto-i@...4u.or.jp> 2000/12/21

石橋秀仁です。こんばんは。

[#26609] net/http,smtp,pop 1.2 pre 1 — Minero Aoki <aamine@...>

あおきです。

24 messages 2000/12/18
[#26653] Re: net/http,smtp,pop 1.2 pre 1 — TAKAHASHI Masayoshi <maki@...> 2000/12/20

高橋征義です。

[#26658] cgi.rb and Regexp::last_match — OHSHIMA Ryunosuke <ryu@...>

大島です。

53 messages 2000/12/20
[#26666] Re: cgi.rb and Regexp::last_match — Wakou Aoyama <wakou@...> 2000/12/20

青山です。

[#26668] Re: cgi.rb and Regexp::last_match — matz@... (Yukihiro Matsumoto) 2000/12/21

まつもと ゆきひろです

[#26711] Re: cgi.rb and Regexp::last_match — Wakou Aoyama <wakou@...> 2000/12/21

青山です。

[#26713] Re: cgi.rb and Regexp::last_match — Shin-ichiro Hara <sinara@...> 2000/12/22

原です。

[#26716] Re: cgi.rb and Regexp::last_match — matz@... (Yukihiro Matsumoto) 2000/12/22

まつもと ゆきひろです

[#26721] Re: cgi.rb and Regexp::last_match — ARIMA Yasuhiro <fit0298@...> 2000/12/22

有馬です。

[#26722] Re: cgi.rb and Regexp::last_match — matz@... (Yukihiro Matsumoto) 2000/12/22

まつもと ゆきひろです

[#26791] Re: cgi.rb and Regexp::last_match — "Akinori MUSHA" <knu@...> 2000/12/24

At Fri, 22 Dec 2000 15:03:17 +0900,

[#26811] Re: cgi.rb and Regexp::last_match — matz@... (Yukihiro Matsumoto) 2000/12/24

まつもと ゆきひろです

[#26670] Re: cgi.rb and Regexp::last_match — "K.Kosako" <kosako@...>

さっきruby-listに入ったばかりなので、

27 messages 2000/12/21
[#26672] Re: cgi.rb and Regexp::last_match — matz@... (Yukihiro Matsumoto) 2000/12/21

まつもと ゆきひろです

[#26675] Re: cgi.rb and Regexp::last_match — "K.Kosako" <kosako@...> 2000/12/21

> まつもと ゆきひろです

[#26677] Re: cgi.rb and Regexp::last_match — Shugo Maeda <shugo@...> 2000/12/21

前田です。

[#26678] Re: cgi.rb and Regexp::last_match — "K.Kosako" <kosako@...> 2000/12/21

> 前田です。

[#26679] Re: cgi.rb and Regexp::last_match — Shugo Maeda <shugo@...> 2000/12/21

前田です。

[#26683] Re: cgi.rb and Regexp::last_match — "K.Kosako" <kosako@...> 2000/12/21

> 前田です。

[#26725] ruby 1.6.2-preview4 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

34 messages 2000/12/22

[#26735] gpib-rb — kiwamu <kiwamu@...>

こんにちは。岡部と申します。

17 messages 2000/12/22

[#26846] Ruby 1.6.2 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

16 messages 2000/12/25

[ruby-list:26545] multiple combination (Re: n-fold loop)

From: Shin-ichiro Hara <sinara@...>
Date: 2000-12-15 10:01:25 UTC
List: ruby-list #26545
原です。

「重複組合せ」でなく、「多重組合せ」のイテレータ化が気になったので書いて
みました。ここにメモします。

「多重組合せ」という用語は多分無くて、「n項係数」みたいなものです。2項係
数というは、nCmと書いて、(x+y)**n の展開に現れる x**m * y**(n-m)
の係数なわけですが、同様に3項係数は(x+y+z)**(p+q+r)に現れる x**p *
y**q * z**r の係数で、(p, q, r)と書いたりします。従って nCm は
(m, n-m)と書けます。

まず、2項係数は

|def comb(n, m = n)
|   if m == 0
|     yield([])
|   else
|     comb(n, m - 1) do |x|
|       ((x.empty? ? 0 : x.last + 1)...n).each do |i|
|	yield(x+[i])
|       end
|     end
|   end
|end

でイテレータ化できるわけですが、これは一般化しにくいので、さらに効率は悪
いのですが素朴な

def comb0(n, m = 0)
  if m == 0
    yield([])
  elsif n == m
    yield((0...n).to_a)
  else
    comb0(n - 1, m) do |x|
      yield(x.dup)
    end
    comb0(n - 1, m - 1) do |x|
      yield(x + [n-1])
    end
  end
end

を元にします。例えば

comb0(5, 3) do |x|
  p x
end

の結果は

[0, 1, 2]
[0, 1, 3]
[0, 2, 3]
[1, 2, 3]
[0, 1, 4]
[0, 2, 4]
[1, 2, 4]
[0, 3, 4]
[1, 3, 4]
[2, 3, 4]

です。これを多項化するために、出現したものに1、出現しなかったものに0を割り
振り、インデックスで次のように表現します。

[0, 1, 2] => [1, 1, 1, 0, 0]
[0, 1, 3] => [1, 1, 0, 1, 0]
[0, 2, 3] => [1, 0, 1, 1, 0]
[1, 2, 3] => [0, 1, 1, 1, 0]
[0, 1, 4] => [1, 1, 0, 0, 1]
[0, 2, 4] => [1, 0, 1, 0, 1]
[1, 2, 4] => [0, 1, 1, 0, 1]
[0, 3, 4] => [1, 0, 0, 1, 1]
[1, 3, 4] => [0, 1, 0, 1, 1]
[2, 3, 4] => [0, 0, 1, 1, 1]

そして、インデックスを 0, 1 だけでなく、一般に 0, 1,.. n にしたものが
最終的にほしいもので、次の様になりました。

def mcomb(a, s = (0...a.size).to_a)
  if a == []
    yield([])
  elsif i = a.index(0)
    (a = a.dup).slice!(i)
    (s = s.dup).slice!(i)
    mcomb(a, s) do |x|
      yield(x)
    end
  else
    a.each_index do |i|
      (b = a.dup)[i] -= 1
      mcomb(b, s) do |x|
	yield(x + [s[i]])
      end
    end
  end
end

mcomb([3, 2, 1]) do |x|
  p x #=>
end

[2, 1, 1, 0, 0, 0]
[1, 2, 1, 0, 0, 0]
[1, 1, 2, 0, 0, 0]
...
[0, 0, 1, 0, 1, 2]
[0, 0, 0, 1, 1, 2]
(計 (3+2+1)!/3!2!1! = 60個)

この mcomb を使って2項係数 comb 相当を書くと

def comb1(n, m)
  mcomb([n-m, m]) do |x|
    yield( (0...n).find_all{|i| x[i] == 1} )
  end
end

です。

順列組合せを総数だけでなく、各要素を列挙するアルゴリズムで示すには、イテ
レータは有効だ、というお話でした。

In This Thread

Prev Next