can you explain code

A

Aashish Kiran

---------------------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
next if $hash2[n].include?(pivot)
nearValues = 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
 
A

Aldric Giacomoni

Aashish said:
---------------------ruby code--------------------

after running ruby code

in below output at first occurrence of

"sssssssssssssssssssssss"

can anyone explain how "nearValues" is updating
(skip long useless code and output)

Well, your code says this:

nearValues.size.times do |i|
n = nearValues
next if $hash2[n].include?(pivot)
nearValues = nil

That means, er. .. If the pivot is in $hash2[n], whatever that means,
then go to the next number. Otherwise, if the pivot is not in $hash2[n],
nearValues is set to nil.
This, incidentally, is absolutely terrible Ruby, and I want to inflict a
lot of pain to the person who wrote it.
 
A

Aashish Kiran

Aldric said:
Aashish said:
---------------------ruby code--------------------

after running ruby code

in below output at first occurrence of

"sssssssssssssssssssssss"

can anyone explain how "nearValues" is updating
(skip long useless code and output)

Well, your code says this:

nearValues.size.times do |i|
n = nearValues
next if $hash2[n].include?(pivot)
nearValues = nil

That means, er. .. If the pivot is in $hash2[n], whatever that means,
then go to the next number. Otherwise, if the pivot is not in $hash2[n],
nearValues is set to nil.
This, incidentally, is absolutely terrible Ruby, and I want to inflict a
lot of pain to the person who wrote it.



thank you for reply
can you please explain how nearValues is adding values

"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
 
A

Aldric Giacomoni

Aashish said:
Aldric said:
Aashish said:
can anyone explain how "nearValues" is updating
(skip long useless code and output)

Well, your code says this:

nearValues.size.times do |i|
n = nearValues
next if $hash2[n].include?(pivot)
nearValues = nil

That means, er. .. If the pivot is in $hash2[n], whatever that means,
then go to the next number. Otherwise, if the pivot is not in $hash2[n],
nearValues is set to nil.
This, incidentally, is absolutely terrible Ruby, and I want to inflict a
lot of pain to the person who wrote it.



thank you for reply
can you please explain how nearValues is adding values


No, because that's not in the code supplied. nearValues is passed to
this method. The code is ugly but very readable. Go over it a few times
and it will make sense.
Hints:
- "p" means "puts" and stands for 'send to the screen' (basically)
- Unknown methods can be looked up here: http://ruby-doc.org/core/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top