这实际上适用于任何语言,但我目前正在使用python和scipy。
我知道有一种简单的方法可以做到这一点。就像1 - 2*(N & 1)
之类的东西一样。但这很难读,并且可能已经在某个地方有了标准功能。
答案 0 :(得分:3)
如果我理解你想要的东西,那就把负面的东西加到N的力量上:
print (-1) ** N
答案 1 :(得分:2)
在python中,您可以使用**
运算符。所以,是的,有一个标准功能(好吧,操作员),它很容易阅读。
因此,对于您的示例,您可以仅举例:
>>> N = 3
>>> value = (-1) ** N
>>> print(value)
-1
或者,如果您不想使用运算符,而是使用函数,则可以执行以下操作:
>>> import math
>>> N = 3
>>> value = math.pow((-1), 3)
>>> print(value)
-1
然而,这似乎毫无意义,因为-1
任何东西的力量总是等于-1
如果它是奇数而1则是偶数。
答案 2 :(得分:2)
Python的三元运算符版本让你把它写成:
-1 if n % 2 else 1
这是一个很好的,可读的内衬。
答案 3 :(得分:1)
我认为您在询问是否有一种简单的方法来定义它,以便不必实际使用指数算法。
def minusone(n)
if n%2 == 0:
retval = 1
else;
retval = -1
return retval
您的原始建议可能会更好
1 - 2*(n%2)