gpt4 book ai didi

java - 谁能帮我解决一个算法? (设置一个大范围值的权重)

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

我想知道如何为巨大的不同值的计算设置权重。我会尝试更好地或更详细地解释它。

思路是:结果我想得到这个范围 [1,20] 内的值:1)第一个值:一个1a) 格式如 0.1 或 0.0001 或 0.00001 等。1b) 最大小数长度 = 5 位小数2)第二个值:b2a) 假设小于 a(如果 a=0.01,至少 b=0.00999 等)2b) 格式相同2c) 最大小数长度 = 6 位小数(所以 1 大于 a)

其中,例如 a=0.01 和 b=0.0001

x = a/b = 100

第二个例子 a=0.01 和 b=0.00001

x = a/b = 1000

我想到了这样的事情:如果最大值可以是(当 a=0.1 和 b=0.000001 时)= 100000,那么它对应于 20(新的最大比例)如果我计算小数位数的差异,我可以说:'a'有一位小数'b' 有 6 位小数一般来说,我们的最大差值为 5,因此:

max = 5

所以使用这个微积分:

diff=6-1=5

为了将它们的分数 (a/b) 对应为最大值 (20),我可以这样做:(diff*20)/max 给我 20。没关系。现在,如果我有 a=0.1 和 b=0.000002我可以使用最低有效数量的“b”(在本例中为 0.000002 的“2”)并与最低有效的“a”进行比较,我可以这样说

diff=6-1=5

现在减去 0.2(因为最低有效数是 2)得到 4.8。现在重新计算:

4.8*20/max = 19.2

所以对于 0.1 和 0.000003 将是

diff=6-1=5
diff=diff-0.3 = 4.7
4.7*20/max = 18.8

等等。

问题是当我有 a=0.3 和 b=0.0002(例如)时,我不知道如何管理它。

即使是伪代码或过程,有人能给我建议一个或一堆解决方案吗?也许我会自己用 java 进行翻译。

我不知道在哪里发布我的问题,如果是的话,如果我弄错了这些网站的一些规则,我真的很抱歉,否则一切都很好:-)谢谢大家

最佳答案

你看过对数吗?

 d = (log(a) - log(b))/log(10)

应该给出答案。换句话说,log(a)/log(10) 给你

0.1   -->  -1
0.01 --> -2
0.001 --> -3

等因此,您可以按照自己的方式计算差异。最后,

exp(d*log(10))

是实际比率。在 java 中,使用 Math.log()

关于java - 谁能帮我解决一个算法? (设置一个大范围值的权重),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33704306/

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