自己写了一个二分法,比较简单
记得高中的时候经常会做这一类的数学题,但是忘得差不多了,所以误差范围也就自己订了一个不大于1的误差范围
// 已知范围是0-100 误差范围小于1
var aaa = 19
function ceshi(_Max, _Min) {
if (_Max - _Min < 1) {
console.log('二分法范围:' + _Max, _Min + ',二分法值:' + aaa)
} else if (aaa === ((_Max + _Min) / 2)) {
console.log('二分法范围' + Number(aaa + 0.01), Number(aaa - 0.01) + ',二分法值:' + aaa)
}
else {
var New_Max = aaa > ((_Max + _Min) / 2) ? _Max : ((_Max + _Min) / 2) // 最大值的取值
var New_Min = aaa > ((_Max + _Min) / 2) ? ((_Max + _Min) / 2) : _Min // 最小值的取值
console.log(New_Max, New_Min)
ceshi(New_Max, New_Min)
}
}
ceshi(100, 0)