Слияние кода завершено, страница обновится автоматически
машины всё ещё имеют большой потенциал для улучшения.
Платформы собраны с использованием Windows 10 и Visual Studio 2017, версия pikapython 1.13, Lua 5.3.6, x64 release.
----------------------------Код pikapython 1.13:------------------------------------
import time
def fib_recursive(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fib_recursive(n-1) + fib_recursive(n-2)
tmstart = time.tick_ms()
fib_recursive(25)
tmend = time.tick_ms()
print(tmend - tmstart)
---------------------------Код на Lua:----------------------------------
function fibonacci(n)
if n <= 1 then
return n
else
return fibonacci(n-1) + fibonacci(n-2)
end
end
function measure_fib_time(n)
local startTime = os.clock()
local result = fibonacci(n)
local endTime = os.clock()
-- os.clock() возвращает время в секундах, умножаем на 1000 для перевода в миллисекунды
local elapsedTime = (endTime - startTime) * 1000
return result, elapsedTime
end
-- Пример: вычисление 25-го числа Фибоначчи и времени его вычисления
local result, timeTaken = measure_fib_time(25)
print("Fibonacci(25) =", result, "Time taken:", timeTaken, "ms")
===============Результат выполнения pikapython: в миллисекундах=================
C:\Users\Administrator\Downloads>pika fib.py
~~~/ POWERED BY \~~~
~ pikapython.com ~
~~~~~~~~~~~~~~~~~~~~
(pikascript) pika compiler:
compiling fib.py...
compiling time.py...
linking pikascript-api/pikaModules_cache.py.a...
(pikascript) all succeed.
16972
================Результат выполнения Lua: в миллисекундах========================
C:\Users\Administrator\Downloads\>lua53.exe fib.lua
Fibonacci(25) = 75025 Time taken: 13.0 ms
Виртуальная машина pikapython имеет большой потенциал для оптимизации...