trueany跟countif效率

  •   161 
  • 最後發表   阿建  2025 六月 11
阿建 發文於   2025/06/10

XQ小幫手及教授好

想請問一下trueany及countif >0 可以做同樣的條件進場,那想問一下哪個程式碼會比較有效率?以上謝謝。

trueany原始碼:

SetBarMode(1);

input:TrueAndFalse(truefalseseries), Length(numericsimple);

TrueAny = False;

for Value1 = 0 to Length - 1

begin

    if TrueAndFalse[Value1] then

    begin

        TrueAny = True;

        break;

    end;

end;

 

 

countif原始碼:

SetBarMode(1);

input:TrueAndFalse(truefalseseries),Length(numericsimple);

variable: variableA(0);

variableA = 0;

for Value1 = 0 to Length - 1

begin

if TrueAndFalse[Value1] then

variableA = variableA + 1;

end;

CountIf = variableA;

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/06/10

TrueAny會比較有效率。理由是,確認有符合條件時,就跳脫迴圈,不再浪費時間跑剩餘的迴圈。

阿建 發文於   2025/06/11

感謝教授,另外我本來認為trueany及countif >0函數應該是相同的意思,但實測總會差異幾筆,方便問可能差異的原因是什麼嗎?謝謝。

虎科大許教授 發文於   2025/06/11

這需要看判斷的條件而定,若用技術指標當作判斷條件,有可能因為讀取的資料筆數造成差異。要看實際例子才知道可能的原因。

發表回覆
Close