[#44066] Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — Urabe Shyouhei <shyouhei@...>

Hi all.

18 messages 2007/10/04
[#44067] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — Takahiro Kambe <taca@...> 2007/10/04

こんにちは。

[#44068] Re: Ruby 1.8.6-p111 / 1.8.5-p114 released (Security Fix) — Shugo Maeda <shugo@...> 2007/10/04

前田です。

[#44090] Windowsアプリにrubyを組み込んだときのエラーメッセージ — "湊大典" <minato.daisuke@...>

こんにちは。

19 messages 2007/10/07
[#44091] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — Nobuyoshi Nakada <nobu@...> 2007/10/09

なかだです。

[#44097] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — "湊大典" <minato.daisuke@...> 2007/10/10

こんばんは、中田さん。

[#44098] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — "U.Nakamura" <usa@...> 2007/10/10

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

[#44103] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — "湊大典" <minato.daisuke@...> 2007/10/11

こんにちは、中村さん。

[#44104] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — Nobuyoshi Nakada <nobu@...> 2007/10/11

なかだです。

[#44105] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — "湊大典" <minato.daisuke@...> 2007/10/12

そうなんですか。

[#44106] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — "きむらこういち" <hogemuta@...> 2007/10/12

木村です。

[#44108] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — pegacorn <subscriber.jp@...> 2007/10/12

From: "きむらこういち" <hogemuta@gmail.com>

[#44109] Re: Windowsアプリにrubyを組み込んだときのエラーメッセージ — "Nobuyoshi Nakada" <nobu@...> 2007/10/13

なかだです。

[#44125] ruby-tk with tcltk8.5b1 — Ryutaro Amano <wn9r-amn@...>

天野竜太郎と申します。

14 messages 2007/10/19

[#44147] 2個づつの組を作る方法のすべて — "142QN4969@..." <ohrs@...>

小原と申します。御世話になっています。

15 messages 2007/10/27

[ruby-list:44152] Re: 2個づつの組を作る方法のすべて

From: Junji Sawada <junjis@...>
Date: 2007-10-28 02:07:10 UTC
List: ruby-list #44152
さわだです。

考えているうちに返信されてしまった...
すいません、私の解答は問題設定を完全に間違えてます。

小原さんは[1, 2, 3, 4]という配列から、
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
という配列を作りたいのではなくて、
[
 [ [1,2], [3,4] ],
 [ [1,3], [2,4] ],
 [ [1,4], [2,3] ]
]
という配列を作りたいようです。
たまたま数が同じだったので配列の配列の配列という
構造になっている意味を深く考えず解答してしまいました。

正しい&他の方よりいい解答があるか現在考え中です。

> ミムラといいます。
> 
> さわださんと同じ方針ですが、
> each_with_indexとarray[array.length -1] == array[-1]を利用すれば、すっきりかけます。
> 
> irb(main):026:0> a = [1,2,3,4]
> => [1, 2, 3, 4]
> irb(main):027:0> ret = [];a.each_with_index{|b,i|
> a[(i+1)..(-1)].each{|c| ret << [b,c]  }}
> => [1, 2, 3, 4]
> irb(main):028:0> ret
> => [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
> irb(main):029:0> a = [1,2,3,1]
> => [1, 2, 3, 1]
> irb(main):030:0> ret = [];a.each_with_index{|b,i|
> a[(i+1)..(-1)].each{|c| ret << [b,c]  }}
> => [1, 2, 3, 1]
> irb(main):031:0> ret
> => [[1, 2], [1, 3], [1, 1], [2, 3], [2, 1], [3, 1]]
> 
> 
> 07/10/28 に Junji Sawada<junjis@dzeta.jp> さんは書きました:
>> さわだと申します。
>>
>> 2*n、ていうかn個の集合から二個ずつ取るとnC2組だと思うのですが、
>> こんな感じでしょうか?
>>
>> #--------
>> #!/usr/bin/env ruby
>>
>> def make_combination(array)
>>   result = []
>>   (0...(array.length-1)).each do |i|
>>     ((i+1)...array.length).each do |j|
>>       result << [array[i], array[j]]
>>     end
>>   end
>>   result
>> end
>>
>> if $0 == __FILE__ then
>>   a = [1, 2, 3, 4]
>>   p make_combination(a) => [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
>>   b = [1, 2, 3, 1]
>>   p make_combination(b) => [[1, 2], [1, 3], [1, 1], [2, 3], [2, 1], [3, 1]]
>> end
>> #--------
>>
>> 小原さんスクリプトのうまくいかないパターンだと、
>> g=[1,2]となった場合に、
>> a(=[1,2,3,1])-g(=[1,2])=>[3]
>> となってうまくいかない、つまり集合に同じ物があると
>> うまくいきません。
>>
>>>  小原と申します。御世話になっています。
>>>
>>>  2*n 個の集合から、二個づつを取って n 個の組を作る全て
>>>  の作りかたを、列挙する script が分からなくて少し
>>>  困っています。例えばこんなやつです。
>>>
>>>  [1,2,3,4] => [[[1,2],[3,4]],[1,3][2,4],[1,4],[2,3]]]
>>>
>>>  以下は、苦し紛れに作ったものですが、変な動きをする
>>>  場合があります。
>>>  幼稚な質問かもしれませんが、どなたか御指導下さい。
>>>
>>> #-----------------------------------------#
>>> #!/usr/bin/env ruby
>>>
>>> # サイズ 2*n の配列 a から
>>> # 2個の要素の組をn個作る方法は
>>> # (2n-1)*(2n-3)*....*3*1  通りある。(?)
>>> # その全てを列挙する
>>>
>>> def f(a)     # 平滑化した配列
>>>   n=a.size/2
>>>   gg=[];hh=[]
>>>   if n==1
>>>     hh=[[a[0],a[1]]]
>>>   else
>>>     i=1
>>>     while i<2*n
>>>       g=[a[0],a[i]];gg.push(g)
>>>       i+=1
>>>     end
>>>     h=[]
>>>     gg.each{|g|;ff=f(a-g);next if ff==[]
>>>       ff.each{|x|;h=g+x;hh.push(h)}
>>>     }
>>>     hh
>>>   end
>>> end
>>>
>>> def fa(a)    # 2個づつの組にした配列の配列
>>>   b=f(a);bb=[]
>>>   b.each{|x|
>>>     i=0;j=0;y=[]
>>>     while x[i]
>>>       y[j]=[x[i],x[i+1]];i+=2;j+=1
>>>     end
>>>     bb.push(y)
>>>   }
>>>   bb
>>> end
>>>
>>> #------------------------------------------------------#
>>>
>>>  a=[1,2,3,4]
>>>  fa(a)=>[[[1,2],[3,4]],[[1,3],[2,4]],[[1,4],[2,3]]]
>>>  b=[1,2,3,1]
>>>  fa(b)=>[[[1, 1], [2, 3]]]
>>>
>>>  以上、よろしくお願いします。

In This Thread