Javascript 求图的极值和极值之间的值

Javascript 求图的极值和极值之间的值,javascript,graph,Javascript,Graph,我需要一个算法来找到一个图的极值和它们之间的一定数量的值。例如,我得到的最高值是0.805,最低值是0.694;我希望极值为0.81和0.69;假设中间的值是6,我希望这些值是0.79、0.78、0.76、0.74、0.72、0.71左右 很久以前,我编写了一个函数,用于查找高极值,但它用于始终将最低值设置为0的图形: const BASE = 5; const LENGTH = 2; function graphTopValue(max_value, max_items) { retur

我需要一个算法来找到一个图的极值和它们之间的一定数量的值。例如,我得到的最高值是0.805,最低值是0.694;我希望极值为0.81和0.69;假设中间的值是6,我希望这些值是0.79、0.78、0.76、0.74、0.72、0.71左右

很久以前,我编写了一个函数,用于查找高极值,但它用于始终将最低值设置为0的图形:

const BASE = 5;
const LENGTH = 2;

function graphTopValue(max_value, max_items) {
  return restore(find(extract(max_value), max_items), max_value);
}

function numlen(n) {
  return Math.ceil(Math.log10(n));
}

function isDivisible(v, i) {
  var r = numlen(v) - 1;
  if ([0, 3, 6, 9].includes(r)) return true;
  return (v / i) % BASE == 0;
}

function extract(v) {
  return parseInt(v.toString().substr(0, LENGTH)) + 1;
}

function restore(v, o) {
  var oldlen = numlen(o);
  if (oldlen <= LENGTH) return v;
  return v * Math.pow(10, oldlen - LENGTH);
}

function find(v, i) {
  if (v % i == 0 && isDivisible(v, i)) return v;
  return find(v + i - (v % i), i);
}

var max_value = 999;
var max_items = 4;
console.log(graphTopValue(max_value, max_items)); // 1000
const BASE=5;
常数长度=2;
函数图pValue(最大值,最大项){
返回还原(查找(提取(最大值)、最大项)、最大值);
}
函数numlen(n){
返回Math.ceil(Math.log10(n));
}
函数可分(v,i){
var r=numlen(v)-1;
if([0,3,6,9].includes(r))返回true;
返回值(v/i)%BASE==0;
}
函数提取(v){
返回parseInt(v.toString().substr(0,长度))+1;
}
功能恢复(v,o){
var oldlen=numlen(o);

如果(oldlenOK,我发现这被称为“尼斯标签算法”。下面是一个实现:


你的问题有点定义不清。我可以假设你总是想把数值四舍五入到两位小数吗?@KIKOSoftware No。例如,如果最高值是999,最低值是0,中间的数值是3,我希望极值是1000和0,中间的数值是250、500和750。