Python, Ruby, C++, Java, JavaScript, Go, Rust, PHP の各言語で、Tarai function を実装と実行時間の計測を行い、それぞれの結果を比較する。 各言語での実装では、ChatGPTとの対話を参考にしている。
tarai(13, 5, 0) を実行した結果を以下の表に示す。
language | version | Average time (sec) | Standard deviation (sec) | source | other |
---|---|---|---|---|---|
Python | 3.10.5 | 4.113185453414917 | 0.0610696132287615 | tarai.py | python tarai.py で実行 |
Ruby | 3.1.2 | 2.3376888 | 0.03658753548354963 | tarai.rb | ruby tarai.rb で実行 |
PHP | 8.2.6 | 2.0136955976486 | 0.012492157295195 | tarai.php | php tarai.php で実行 |
JavaScript | node v19.8.1 | 0.21630000000000002 | 0.0023685438564654045 | tarai.js | node tarai.js で実行 |
C++ | C++20 (202002) | 0.106396 | 0.00468259 | tarai.cpp | g++ -std=c++20 tarai.cpp -o tarai && ./tarai で実行 |
Java | 20.0.1 | 0.0512 | 0.0012489995996796796 | tarai.java | javac tarai.java && java tarai で実行 |
Go | go1.20.5 | 0.069549 | 0.007391 | tarai.go | go run tarai.go で実行 |
Rust | rustc 1.69.0 | 0.10643837520000002 | 0.002337982066436942 | tarai.rs | rustc tarai.rs && ./tarai で実行 |
- 実行時間は、10回の平均と標準偏差を記録している
- C++ コンパイラについて:
gcc version 13.1.0 (Homebrew GCC 13.1.0)
結果から、C++, Java, Go, Rust が高速なパフォーマンスを示し、Python, Ruby, PHP が低速なパフォーマンスを示している。
次の数式により再帰的に定義される関数。