[#42643] メールのSMTP認証の方法(質問) — "Hisashi Yahata" <yahatah@...>

お世話になります。

34 messages 2006/08/09
[#42649] Re: メールのSMTP認証の方法(質問) — OHARA Shigeki <os@...> 2006/08/09

大原です。

[#42650] Re: メールのSMTP認証の方法(質問) — "Hisashi Yahata" <yahatah@...> 2006/08/09

大原様

[#42651] Re: メールのSMTP認証の方法(質問) — 植田裕之 <ueda@...> 2006/08/09

植田と申します。

[#42654] Re: メールのSMTP認証の方法(質問) — "Hisashi Yahata" <yahatah@...> 2006/08/09

植田 裕之様

[#42657] Re: メールのSMTP認証の方法(質問) — WATANABE Tetsuya <Tetsuya.WATANABE@...> 2006/08/09

渡辺哲也です。

[ruby-list:42668] Re: 組み合わせを作るrubyらしい方法

From: "Chikaoka, Nobuyoshi" <chikaoka-nobuyoshi@...>
Date: 2006-08-10 07:51:38 UTC
List: ruby-list #42668
近岡@高岡西高です。

> [1,2,3,4].conbination(2)   => [ [1,2],[1,3],[1,4],[2,3],[2,4],[3,4] ]
> [1,2,3].conbination([4,5]) => [ [1,4],[1,5],[2,4],[2,5],[3,4],[3,5] ]
>
>こんな結果を帰すものを ruby的に作るにはどうしたものでしょうか。
>

引数ですが、例えば、
[1,2,3].conbination(1,[4,5]) => [ [1,4,5],[2,4,5],[3,4,5] ]
[1,2,3].conbination(2,[4,5]) => [ [1,2,4,5],[1,3,4,5],[2,3,4,5] ]
・・・
[1,2,3].conbination(1,[]) => [ [1],[2],[3] ]       # 第2引数は省略可?
[1,2,3].conbination(2,[]) => [ [1,2],[1,3],[2,3] ]
・・・
のような仕様にすれば、
[a,b,c,…,d,e].conbination(n,[])の帰す配列は、2つの配列の連結
 [a,b,c,…,d].conbination(n,[]) + [a,b,c,…,d].conbination(n-1,[e])
で与えられ、
[a,b,c,…,d,e].conbination(n,[f,…,g])の帰す配列は、2つの配列の連結
 [a,b,c,…,d].conbination(n,[f,…,g]) + [a,b,c,…,d].conbination(n-1,[e,f,…,g])
で与えられ、
いずれも単純なアルゴリズムになります?

もっとも、[a,b,c,…,d,e].size = N のとき、
再帰ルーチンを呼び出す回数がほぼ(2^N )回になるので、
実用的ではありませんが。

ついでに言えば、例えば [1,2,3].conbination(2,[4,5]) の帰す配列は、
 [1,2,3].conbination(2,[]).map{|k| [k]+[4,5] }
の帰す配列にも等しくなりますね。

0----+----1----+----2----+----3----+----4----+----5----+----6
近岡 宣吉  Chikaoka, Nobuyoshi
富山県立高岡西高等学校(数楽科)


In This Thread