使用场景: 数据统计显示计算, 以圆的半斤反应数据的差异, 但同时不至于差别太大。
已知一组确定的数据, 比如 1000,5,40,600,8000 以一个圆代表一组数字, 如何让它们的半径尽可能在一个接近的范围, 比如第一个大约 0.1 左右,第二个大约在 0.05 , 而不是 0.0005 。
1
ciaoly 2020-05-20 22:34:46 +08:00 via Android 1
也许可以,取对数?🤔
|
2
chocovon 2020-05-20 22:36:18 +08:00 via Android 1
取个对数?
|
3
27 2020-05-20 22:48:31 +08:00 1
取对数不错的,差 100 倍等于半径差 2 倍,还嫌多的话就
log(log(x))或者 sqrt(log(x)) |
4
27 2020-05-20 22:49:36 +08:00
主要保证在保持单调性的同时减小数量级就可以了
|
5
xml123 2020-05-21 00:02:25 +08:00 1
取对数可以的,如果是严格要求将无穷区间映射到有限区间,可以用反正切,任意构造一个有理函数(如 1-1/x)也不是很复杂。
|
6
msg7086 2020-05-21 06:01:17 +08:00 1
Windows 自带的磁盘管理工具默认就是用的对数比例,你把一个 128G 的 SSD 和一个 12T 的硬盘放在一起看,128G 的是 12T 长度的 0.7 倍。当然具体用对数还是用其他映射函数,还是看你的输入数据之间差别有多大。
|