- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想知道如何为巨大的不同值的计算设置权重。我会尝试更好地或更详细地解释它。
思路是:结果我想得到这个范围 [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/
嗨,我是第一次玩 Pig,我很好奇如何处理将一个字段拆分成多个其他字段。 我有一个包,A,如下图: grunt> Dump A; (text, text, Mon Mar 07 12:00:00 CD
如何添加架构中未定义的固定字段(例如日期或月份)?我运行了以下 pig 脚本以将固定日期添加到我的结果表中,并收到以下错误消息:Invalid field projection。方案中不存在投影字段
我是一名优秀的程序员,十分优秀!