请教大佬们, 如何通某种方式,是一组数据尽可能收敛于一个值

2020-05-20 22:09:24 +08:00
 ccraohng

使用场景: 数据统计显示计算, 以圆的半斤反应数据的差异, 但同时不至于差别太大。

已知一组确定的数据, 比如 1000,5,40,600,8000 以一个圆代表一组数字, 如何让它们的半径尽可能在一个接近的范围, 比如第一个大约 0.1 左右,第二个大约在 0.05 , 而不是 0.0005 。

1337 次点击
所在节点    问与答
6 条回复
ciaoly
2020-05-20 22:34:46 +08:00
也许可以,取对数?🤔
chocovon
2020-05-20 22:36:18 +08:00
取个对数?
27
2020-05-20 22:48:31 +08:00
取对数不错的,差 100 倍等于半径差 2 倍,还嫌多的话就
log(log(x))或者 sqrt(log(x))
27
2020-05-20 22:49:36 +08:00
主要保证在保持单调性的同时减小数量级就可以了
xml123
2020-05-21 00:02:25 +08:00
取对数可以的,如果是严格要求将无穷区间映射到有限区间,可以用反正切,任意构造一个有理函数(如 1-1/x)也不是很复杂。
msg7086
2020-05-21 06:01:17 +08:00
Windows 自带的磁盘管理工具默认就是用的对数比例,你把一个 128G 的 SSD 和一个 12T 的硬盘放在一起看,128G 的是 12T 长度的 0.7 倍。当然具体用对数还是用其他映射函数,还是看你的输入数据之间差别有多大。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/673784

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX