From: Aashish Kiran Date: 2010-01-09T01:30:08+09:00 Subject: can you explain code ---------------------ruby code-------------------- after running ruby code in below output at first occurrence of "sssssssssssssssssssssss" can anyone explain how "nearValues" is updating $hash2={"value1"=>["value2", "value3", "value6"], "value2"=>["value1", "value3", "value6"], "value3"=>["value1", "value2", "value6"], "value4"=>["value5", "value6"], "value5"=>["value4", "value6"], "value6"=>["value4", "value5", "value1", "value2", "value3"]} $subgraphs = [] def get_subgraphs(setGroup, nearValues, checkedValues) p "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" p "setGroup" p setGroup p "nearValues" p nearValues p "checkedValues" p checkedValues if nearValues.empty? && checkedValues.empty? $subgraphs << setGroup.sort.join(", ") if setGroup.size > 2 else possible_pivots = nearValues + checkedValues p "possible_pivots" p possible_pivots pivot = possible_pivots.inject(nil) do |best, p| best.nil? || $hash2[p].size > best.size ? best = p : best end p " pivot " p pivot nearValues.size.times do |i| n = nearValues[i] next if $hash2[n].include?(pivot) nearValues[i] = nil p "i" p i p "checkedValues" p checkedValues p "nearValues.compact & $hash2[n]" p nearValues.compact & $hash2[n] p " checkedValues & $hash2[n]" p checkedValues & $hash2[n] get_subgraphs(setGroup + [n], nearValues.compact & $hash2[n], checkedValues & $hash2[n]) p "sssssssssssssssssssssss" checkedValues << n p "checkedValues" p checkedValues p "nearValues" p nearValues end end end p "$hash2 =" p $hash2 p "$hash2.keys =" p $hash2.keys get_subgraphs([], $hash2.keys, []) p "$subgraphs =" p $subgraphs puts $subgraphs.sort.join("\n") << "\n" ----------------------end-------------------- ---------------- output is as follows --------------------------- Hello World "$hash2 =" {"value1"=>["value2", "value3", "value6"], "value2"=>["value1", "value3", "value6"], "value3"=>["value1", "value2", "value6"], "value4"=>["value5", "value6"], "value5"=>["value4", "value6"], "value6"=>["value4", "value5", "value1", "value2", "value3"]} "$hash2.keys =" ["value1", "value2", "value3", "value4", "value5", "value6"] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" [] "nearValues" ["value1", "value2", "value3", "value4", "value5", "value6"] "checkedValues" [] "possible_pivots" ["value1", "value2", "value3", "value4", "value5", "value6"] " pivot " "value1" "i" 0 "checkedValues" [] "nearValues.compact & $hash2[n]" ["value2", "value3", "value6"] " checkedValues & $hash2[n]" [] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value1"] "nearValues" ["value2", "value3", "value6"] "checkedValues" [] "possible_pivots" ["value2", "value3", "value6"] " pivot " "value2" "i" 0 "checkedValues" [] "nearValues.compact & $hash2[n]" ["value3", "value6"] " checkedValues & $hash2[n]" [] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value1", "value2"] "nearValues" ["value3", "value6"] "checkedValues" [] "possible_pivots" ["value3", "value6"] " pivot " "value3" "i" 0 "checkedValues" [] "nearValues.compact & $hash2[n]" ["value6"] " checkedValues & $hash2[n]" [] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value1", "value2", "value3"] "nearValues" ["value6"] "checkedValues" [] "possible_pivots" ["value6"] " pivot " "value6" "i" 0 "checkedValues" [] "nearValues.compact & $hash2[n]" [] " checkedValues & $hash2[n]" [] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value1", "value2", "value3", "value6"] "nearValues" [] "checkedValues" [] "sssssssssssssssssssssss" "checkedValues" ["value6"] "nearValues" [nil] "sssssssssssssssssssssss" "checkedValues" ["value3"] "nearValues" [nil, "value6"] "sssssssssssssssssssssss" "checkedValues" ["value2"] "nearValues" [nil, "value3", "value6"] "sssssssssssssssssssssss" "checkedValues" ["value1"] "nearValues" [nil, "value2", "value3", "value4", "value5", "value6"] "i" 3 "checkedValues" ["value1"] "nearValues.compact & $hash2[n]" ["value5", "value6"] " checkedValues & $hash2[n]" [] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value4"] "nearValues" ["value5", "value6"] "checkedValues" [] "possible_pivots" ["value5", "value6"] " pivot " "value5" "i" 0 "checkedValues" [] "nearValues.compact & $hash2[n]" ["value6"] " checkedValues & $hash2[n]" [] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value4", "value5"] "nearValues" ["value6"] "checkedValues" [] "possible_pivots" ["value6"] " pivot " "value6" "i" 0 "checkedValues" [] "nearValues.compact & $hash2[n]" [] " checkedValues & $hash2[n]" [] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value4", "value5", "value6"] "nearValues" [] "checkedValues" [] "sssssssssssssssssssssss" "checkedValues" ["value6"] "nearValues" [nil] "sssssssssssssssssssssss" "checkedValues" ["value5"] "nearValues" [nil, "value6"] "sssssssssssssssssssssss" "checkedValues" ["value1", "value4"] "nearValues" [nil, "value2", "value3", nil, "value5", "value6"] "i" 4 "checkedValues" ["value1", "value4"] "nearValues.compact & $hash2[n]" ["value6"] " checkedValues & $hash2[n]" ["value4"] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value5"] "nearValues" ["value6"] "checkedValues" ["value4"] "possible_pivots" ["value6", "value4"] " pivot " "value6" "i" 0 "checkedValues" ["value4"] "nearValues.compact & $hash2[n]" [] " checkedValues & $hash2[n]" ["value4"] "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "setGroup" ["value5", "value6"] "nearValues" [] "checkedValues" ["value4"] "possible_pivots" ["value4"] " pivot " "value4" "sssssssssssssssssssssss" "checkedValues" ["value4", "value6"] "nearValues" [nil] "sssssssssssssssssssssss" "checkedValues" ["value1", "value4", "value5"] "nearValues" [nil, "value2", "value3", nil, nil, "value6"] "$subgraphs =" ["value1, value2, value3, value6", "value4, value5, value6"] value1, value2, value3, value6 value4, value5, value6 -- Posted via http://www.ruby-forum.com/.