gpt4 book ai didi

javascript - 找到最近的比例算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:58:31 27 4
gpt4 key购买 nike

假设我有一组比例(3 个值总共产生 100%):

var 比例 = [[10,10,80],[20,30,50],[40,20,40],[0,0,100]];

如何按照任何给定比例的接近度(距离)顺序对数组进行排序?

例如,sortProportions(proportions, [22,28,50]) 将返回 [[20,30,50],[10,10,80],[40, 20,40],[0,0,100]].

这里 [20,30,50] 是第一个,因为它是最接近 [22,28,50] 的比例。不过,不确定另一个。

在数学术语中,它被称为三元图。问题归结为找到三元图上两点之间的距离。

最佳答案

假设您指的是每个维度接近度的差的平方和

function distance2(p1, p2) {
return Math.pow(p1[0] - p2[0], 2) + Math.pow(p1[1] - p2[1], 2) + Math.pow(p1[2] - p2[2], 2)
}

// given point
var gP = [20, 30, 55];

// sort
var output = [[10, 10, 80], [20, 30, 50], [40, 20, 40], [0, 0, 100]].sort(function (a, b) {
// -1 if a before b
// 1 if a after b
// 0 if no change
return Math.sign(distance2(a, gP) - distance2(b, gP));
});

关于javascript - 找到最近的比例算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33307300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com