gpt4 book ai didi

math - 如何找到与 i 模 m 一致的最小正整数?

转载 作者:行者123 更新时间:2023-12-03 06:11:09 30 4
gpt4 key购买 nike

我有一个保存角度(以度为单位)的变量,该角度可以是正值也可以是负值。我现在需要确保该数字仅在 0 到 360 之间。该数字是 double 。

执行此操作的好算法是什么?简单地执行角度 % 360 是行不通的,因为负数最终仍然是负数。奖金点授予最小算法(又名“Code Golf”)。

<小时/>

编辑

显然这在不同的语言中是不同的。在 ActionScript 和 JavaScript 中,取模将返回 +m 和 -m 之间的数字:

(-5) % 360 = -5

最佳答案

d = ((d % 360) + 360) % 360;

如果模数给出的值介于 -359 和 359 之间,则有效。

我个人会把它放在一个单独的函数中,因为它像罪恶一样丑陋。

def mymodulo(n,m):
return ((n % m) + m) % m;
  • 第一个模给出的值介于 -359 到 359 之间。
  • 加法后,数字会增加到 1 到 719 之间。
  • 第二个模数将其带回您想要的范围,即 0 到 359。

对于高尔夫代码,29 个字符,包括 Python 中的换行符:

def f(n,m):return((n%m)+m)%m

并不是说 Python 实际上需要它:(-5)%360 为您提供该语言的 355 :-)

关于math - 如何找到与 i 模 m 一致的最小正整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1739883/

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