require 'rubygems'
require 'dispatch'
def induceBackwardSlow(nodes, values)
n = values.length / 2
nodes.map do |node|
(node[2] * values[n + node[1]] +
node[4] * values[n + node[3]] +
node[6] * values[n + node[5]]) * node[0]
end
end
ITERATION = 1000
def last_values(i)
Array.new(201, i.to_f)
end
def test_tree
99.downto(0).map do |i|
(-i..i).map do |j|
[1.0, j - 1, 1.0 / 6.0, j, 2.0 / 3.0, j + 1, 1.0 / 6.0]
end
end
end
puts((1..ITERATION).p_map do |i|
test_tree.
inject(last_values(i)) {|values, nodes| induceBackwardSlow(nodes, values) }.
first
end.max)