るりまサーチ

最速Rubyリファレンスマニュアル検索!
417件ヒット [101-200件を表示] (0.108秒)

別のキーワード

  1. _builtin to_c
  2. etc sc_2_c_dev
  3. etc sc_2_c_bind
  4. tracer display_c_call
  5. tracer display_c_call=

ライブラリ

クラス

モジュール

検索結果

<< < 1 2 3 4 ... > >>

TSort#strongly_connected_components -> Array (15213.0)

強連結成分の集まりを配列の配列として返します。 この配列は子から親に向かってソートされています。 各要素は強連結成分を表す配列です。

...re 'tsort'

c
lass Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end

non_sort = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}

p non_sort.strongly_connected_components
#=> [[4], [2, 3], [1]]
//}

@see TSort.strongly_connected_compo...

TSort#tsort_each_node {|node| ...} -> () (15201.0)

TSort で拡張されるクラスで定義されていなければならないメソッドです。

...TSort で拡張されるクラスで定義されていなければならないメソッドです。

tsort_each_node is used to iterate for all nodes over a graph.

@raise NotImplementedError TSort で拡張されるクラスで定義されていない場合発生します。...

TSort#each_strongly_connected_component_from(node, id_map={}, stack=[]) -> Enumerator (9119.0)

node から到達可能な強連結成分についてのイテレータです。

...each_strongly_connected_component_from は
tsort_each_node を呼びません。

@param node ノードを指定します。

//emlist[例 到達可能なノードを表示する][ruby]{
require 'tsort'

c
lass Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)...
...fetch(node).each(&block)
end
end

non_sort = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}

non_sort.each_strongly_connected_component{|nodes|
p nodes
nodes.each {|node|
non_sort.each_strongly_connected_component_from(node){|ns|
printf("%s -> %s\n", node, ns.join(","))
}
}
}

#出力...
...#=> [4]
#=> 4 -> 4
#=> [2, 3]
#=> 2 -> 4
#=> 2 -> 2,3
#=> 3 -> 4
#=> 3 -> 3,2
#=> [1]
#=> 1 -> 4
#=> 1 -> 2,3
#=> 1 -> 1
//}

@see TSort.each_strongly_connected_component_from...

TSort#each_strongly_connected_component_from(node, id_map={}, stack=[]) {|nodes| ...} -> () (9119.0)

node から到達可能な強連結成分についてのイテレータです。

...each_strongly_connected_component_from は
tsort_each_node を呼びません。

@param node ノードを指定します。

//emlist[例 到達可能なノードを表示する][ruby]{
require 'tsort'

c
lass Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)...
...fetch(node).each(&block)
end
end

non_sort = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}

non_sort.each_strongly_connected_component{|nodes|
p nodes
nodes.each {|node|
non_sort.each_strongly_connected_component_from(node){|ns|
printf("%s -> %s\n", node, ns.join(","))
}
}
}

#出力...
...#=> [4]
#=> 4 -> 4
#=> [2, 3]
#=> 2 -> 4
#=> 2 -> 2,3
#=> 3 -> 4
#=> 3 -> 3,2
#=> [1]
#=> 1 -> 4
#=> 1 -> 2,3
#=> 1 -> 1
//}

@see TSort.each_strongly_connected_component_from...

TSort#each_strongly_connected_component -> Enumerator (9113.0)

TSort#strongly_connected_components メソッドのイテレータ版です。 obj.each_strongly_connected_component は obj.strongly_connected_components.each に似ていますが、 ブロックの評価中に obj が変更された場合は予期しない結果になる ことがあります。

...TSort#strongly_connected_components メソッドのイテレータ版です。
obj.each_strongly_connected_component は
obj.strongly_connected_components.each に似ていますが、
ブロックの評価中に obj が変更された場合は予期しない結果になる
ことがあります。...
...ch_strongly_connected_component は nil を返します。

//emlist[使用例][ruby]{
require 'tsort'

c
lass Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end

non_sort = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}

non_sort.eac...
...h_strongly_connected_component{|nodes|
p nodes
}

#出力
#=> [4]
#=> [2, 3]
#=> [1]
//}

@see TSort.each_strongly_connected_component...

絞り込み条件を変える

TSort#each_strongly_connected_component {|nodes| ...} -> nil (9113.0)

TSort#strongly_connected_components メソッドのイテレータ版です。 obj.each_strongly_connected_component は obj.strongly_connected_components.each に似ていますが、 ブロックの評価中に obj が変更された場合は予期しない結果になる ことがあります。

...TSort#strongly_connected_components メソッドのイテレータ版です。
obj.each_strongly_connected_component は
obj.strongly_connected_components.each に似ていますが、
ブロックの評価中に obj が変更された場合は予期しない結果になる
ことがあります。...
...ch_strongly_connected_component は nil を返します。

//emlist[使用例][ruby]{
require 'tsort'

c
lass Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end

non_sort = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}

non_sort.eac...
...h_strongly_connected_component{|nodes|
p nodes
}

#出力
#=> [4]
#=> [2, 3]
#=> [1]
//}

@see TSort.each_strongly_connected_component...

Net::IMAP#uid_sort(sort_keys, search_keys, charset) -> [Integer] (6457.0)

SORT コマンド送り、メールボックス内の メッセージをソートした結果を返します。

...SORT コマンド送り、メールボックス内の
メッセージをソートした結果を返します。

SORT
コマンドは 5256 で定義されています。
詳しくはそちらを参照してください。
このコマンドは Net::IMAP#capability の返り値を見ることで
...
...

sort
_keys にはソート順を決めるキーを文字列の配列で指定します。
"ARRIVAL", "CC", "FROM", "TO", "SUBJECT" などが指定できます。
詳しくは 5265 の BASE.6.4.SORT の所を見てください。

search_key には検索条件を渡します。Net::IMAP#search...
...Net::IMAP#select で指定したメールボックスを対象とします。

返り値は message sequence number の配列を返します。

例:
p imap.sort(["FROM"], ["ALL"], "US-ASCII")
#=> [1, 2, 3, 5, 6, 7, 8, 4, 9]
p imap.sort(["DATE"], ["SUBJECT", "hello"], "US-ASCII")
#=> [6, 7,...

Enumerable#sort_by {|item| ... } -> [object] (6311.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

...例][ruby]{
c
lass Array
def sort_by
self.map {|i| [yield(i), i] }.
sort
{|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}

Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort
_by を使...
...度に downcase が実行されます。
従って downcase の実行速度が遅ければ sort の速度が致命的に低下します。

//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }
//}

一方、次のように sort_by を使うと downcase の実行...
...", "bar", "foo"].sort_by {|v| v.downcase }
//}

以下の、実行回数の検証結果を参照してみてください。

//emlist[][ruby]{
c
lass Integer
def count
$n += 1
self
end
end

ary = []
1.upto(1000) {|v| ary << rand(v) }

$n = 0
ary.sort {|a,b| a.count <=> b.count }
p $n...

Enumerable#sort_by -> Enumerator (6211.0)

ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。

...例][ruby]{
c
lass Array
def sort_by
self.map {|i| [yield(i), i] }.
sort
{|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}

Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort
_by を使...
...度に downcase が実行されます。
従って downcase の実行速度が遅ければ sort の速度が致命的に低下します。

//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }
//}

一方、次のように sort_by を使うと downcase の実行...
...", "bar", "foo"].sort_by {|v| v.downcase }
//}

以下の、実行回数の検証結果を参照してみてください。

//emlist[][ruby]{
c
lass Integer
def count
$n += 1
self
end
end

ary = []
1.upto(1000) {|v| ary << rand(v) }

$n = 0
ary.sort {|a,b| a.count <=> b.count }
p $n...
<< < 1 2 3 4 ... > >>