Base = 50000000
Goal = 1789772.5
div = (Base / Goal).round
best_add = 0
best_max = 0
best_gosa = Base.to_f
for add in 1..100
gosa_min = Base.to_f
hosei = -add
loop{
max = div * add + hosei
hz = 0
count = 0
amari = 0
for i in 0..Base
if count > max
count -= max
amari += count
hz += 1
else
count += add
end
end
hzo = hz + count / max.to_f
h = hzo - Goal
if h.abs < gosa_min
print "加算値 ", add, " しきい値 ", max, " 補正 ", hosei, "\n"
gosa_min = h.abs
if gosa_min < best_gosa
best_add = add
best_max = max
best_gosa = gosa_min
print "更新 誤差 ", best_gosa, "\n"
end
else
break
end
if h > 0.0
hosei += 1
else
hosei -= 1
end
}
end
print "加算値 ", best_add, " しきい値 ", best_max, " 誤差 ", best_gosa, "\n"