【发布时间】:2014-10-29 16:05:09
【问题描述】:
我有一种情况,我正在对大量行执行计算,如果我可以避免使用条件语句,我真的可以提高性能。
我需要的是对于给定的正整数、零整数或负整数,我分别想要结果 1、0、-1。
因此,如果我执行col/ABS(col),我将得到 1 表示正数,而 -1 表示负数,但当然如果 col 等于 0,那么我会得到一个错误。我不能得到错误。
这看起来很简单,但我无法绕开它。
【问题讨论】:
-
嗯,将您已有的术语乘以
col有什么影响? -
根据语言,您可以说:
if not value return 0; else return value/abs(value)。 -
col/max(1, abs(col))?丑陋但有效。 (对于整数,就是这样。) -
我认为关键是要避免另一个条件 - 这两个语句都意味着另一个条件。
-
这里有一些灵感,也许:stackoverflow.com/questions/1610836/…
标签: algorithm