and*_*drz 3 replace if-statement wolfram-mathematica
我正在权衡两者之间的差异
If[condition1 AND condition2, A, B]
Run Code Online (Sandbox Code Playgroud)
和
If[condition1, If[condition2, A, B], B]
Run Code Online (Sandbox Code Playgroud)
我的想法:嵌套的IF会更快.
我的理由是:通过嵌套的IF,条件2只计算在条件1为真.在我正在做的事情中,这意味着condition2评估次数将少于上面第一个选项.
AND是通常的逻辑"和"(当且仅当两个前提都为真时才为真).通过IF,我的意思是IF [ 条件,当条件为真时,条件为假].
我希望我的问题不是太不合适; 我确信有一些例子可以让第一个选项运行得更快.我只是希望一般情况确实如此.
谢谢.
数学将短路评价And
和Or
如果结果变得评估所有条件之前是已知的.
你可以通过使用(人为)需要很长时间的条件来看到这一点:
Timing[If[False && (Pause[10]; True), True, False]]
Timing[If[False, If[(Pause[10]; True), True, False], False]]
Run Code Online (Sandbox Code Playgroud)
并且看到两者都在几分之一秒内而不是在十秒内返回.
归档时间: |
|
查看次数: |
331 次 |
最近记录: |