0

我正在尝试开发一种原型存档格式,可以更好地抵御数据损坏。我的模式是将每个字符转换为十进制,然后绘制数据。

例如:

一些 _

83 111 109 101 32 ........ 115

绘制后,^ 这些 ^ 数字可以用以下函数描述:-18.04*ln(x) + 124.14

由于每组数字都将使用自然对数绘制,因此我计划以 [is_neg][first_num][second_num] 的形式将浮点数附加到每行的末尾,例如 11804124.14

第一个数字将始终是一个布尔值,表示它是负数还是正数。接下来的四个数字将始终是 ln 的系数。最后 5 个数字将始终是常数项。如果小于一百,则以 0 为前缀。

这些都不重要。我认为这是表示数据的最佳方式。如果有人有更好的主意,我很想听听(说真的)。

目前我正在 Excel 中执行此操作。我突出显示数字、图表向导等,添加对数绘图线。

所以这是我的问题。有没有一种方法,在算法上,给定一组两个或多个数字来生成对数函数?如果在某个地方有一个预定义的类,那就太好了。我试着四处寻找,但找不到任何东西。考虑到它是一个 excel 功能,我认为 .Net 可能对此有所帮助。

附带说明一下,以防万一有人好奇,我计划将等式添加到行尾(就像我之前所说的那样)。对于档案损坏检测和修复,我将遍历每一行并计算最能描述该行的方程。如果该值非常偏离(例如超过 20%),那么我将得出结论,要么存档损坏太远而无法修复,要么元数据已损坏。

如果设定值在公差范围内,我修复档案的计划是对行中的每个值进行排列并计算与之相关的方程。与函数最接近的全突变集将被视为“正确”集。

很复杂,是吗?我也对想法持开放态度。非常感谢您提前提供的任何帮助!

4

1 回答 1

0

在您使用对数转换所述数据之后,您所问的问题可能最好使用数据的线性回归(使用最小二乘近似)计算。

总的来说,我怀疑你的方案会非常有用,因为计算这些对数是相当昂贵的,并且从那条线上重建数据会很困难。有关该主题的想法,请查看前向纠错

于 2013-04-26T08:27:41.407 回答