【问题标题】:Efficient Array Normalization of Approximate Values近似值的高效数组归一化
【发布时间】:2011-04-08 07:25:53
【问题描述】:

我正在寻找将近似值 (ushort[100]) 替换为目标值的有效方法。

有两个目标值(ushort x, 2x),ushort[] 中的每个值都近似于这两个中的一个。

【问题讨论】:

  • "数组中值的出现总是有规律的。"没有关于“模式”的任何信息,这是非常无用的信息。

标签: c# arrays normalization


【解决方案1】:
var a = target1 > words[i] ? target1 - words[i] : words[i] - target1;
var b = target2 > words[i] ? target2 - words[i] : words[i] - target2;
(OR)
var as = target1 - words[i];
var bs = target2 - words[i];
a = as + (as >> 31) ^ (as >> 31);
b = bs + (bs >> 31) ^ (bs >> 31);

if (a < b)
   normalized[i] = target1;
else
   normalized[i] = target2;

【讨论】:

    【解决方案2】:

    您总是可以只定义一个距离度量,允许您将每个近似值分配给预期值,考虑到那些是“箱”,就像在直方图中一样。处理这些值意味着将近似值替换为与该值具有最小距离的已知值。

    【讨论】:

      【解决方案3】:
      • 使用预期值创建一个排序数组
      • 对于每一个近似值,二分查找最接近的期望值
      • 替换

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-23
        • 2011-02-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多