Duminică, 1 sep 2024 22:48 
	                    
[#] 
        nickxyzt
Eu am fost mai lenes si am facut un program simplu de brute force... intr-adevar ajungem la 0.
De exemplu, pentru numerele a:0.024 b:-0.021 c:-0.006 d:-0.009, obtinem prima valoare aproximativ 1, iar a doua aproximativ 0.
Sper sa se vada bine codul, este scris in Ruby:
numere = [] # Creare plaja de numere de test
50.times do |i|
  numere << (i-25 + 1).to_f / 1000
end
numere.each do |a|
  numere.each do |b|
    numere.each do |c|
      numere.each do |d|
        valoare = (a.to_f/(b+c+d) + b.to_f/(a+c+d) + c.to_f/(a+b+d) + d.to_f/(a+b+c)).abs
        if (1 - valoare).abs < 0.00001 # luam aceasta abatere posibila
          valoare2 = (a*a.to_f/(b+c+d) + b*b.to_f/(a+c+d) + c*c.to_f/(a+b+d) + d*d.to_f/(a+b+c)).abs
          puts "a:#{a} b:#{b} c:#{c} d:#{d} valoare: #{valoare} valoare2: #{valoare2}"
        end
      end
    end
  end
end