我总是被告知永远不要代表钱double或float类型,这次我向你提出问题:为什么?
我确信有一个很好的理由,我根本不知道它是什么.
这个问题的灵感来自于我昨天的工作.
假设我们有N个输入,评估为真或假,哪种输入的X是真的最有效的方法是什么?
注意事项:
- 输入不在数组中,因此如果将它们转换为数组,请考虑任何管理费用.
- "效率最高"我指的是最佳平均情况(尽管我也希望看到最佳和最差情况统计数据).
这是我昨天遇到的两种方法.
1)将变量视为电路的布尔输入,并使用K-map减少它们
起初我认为这将是最有效的手段,因为它遵循电路逻辑,但我肯定有第二个想法.随着输入数量的增加,比较次数呈指数增长
2 inputs:
1 of 2: if(1 OR 2)
2 of 2: if(1 AND 2)
3 inputs:
1 of 3: if(1 OR 2 OR 3)
2 of 3: if((1 AND 2) OR (1 AND 3) OR (2 AND 3))
3 of 3: if(1 AND 2 AND 3)
4 inputs:
1 of 4: if(1 OR 2 OR 3 OR 4)
2 of 4: if((1 AND 2) OR (1 AND 3) OR (1 AND 4) …Run Code Online (Sandbox Code Playgroud)