gpt4 book ai didi

c++ - 在循环系统中找到两个值之间最小差异的最佳方法?

转载 作者:行者123 更新时间:2023-12-03 07:00:21 24 4
gpt4 key购买 nike

以时间为例:
如果我们采用 12 小时制,我们会得到以下结果

  • 从 1 到 5 = 4
  • 从 5 到 1 = 4
  • 从 11 到 1 = 2
  • 从 1 到 11 = 2

  • 最有效的方法是什么?
    假设值是 double 值。

    最佳答案

    不使用模运算。 fabs很便宜。

    double closest_dist_in_cycle(double a, double b, double cycle){
    double result = std::fabs(a - b);
    return std::min(result, cycle - result);
    }
    引用:
    How would fabs(double) be implemented on x86? Is it an expensive operation?

    关于c++ - 在循环系统中找到两个值之间最小差异的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64702387/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com