Module:Rapidité

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche

Ce module sert d'exemple dans la leçon Initiation au Lua avec Scribunto. son utilisation est décrite en détail dans celle-ci et, par conséquent, ce module ne doit pas être modifié sans tenir compte de la leçon.


local p = {}

function f(x)
	return math.sqrt((x+1)/(x+3))
end

function g(x)
	return (x*2+x+5)^2
end

function h(x)
	return 1/math.log(x+5)
end

function chrono(x)
	local temps = os.clock()
	x(1)
	return os.clock() - temps
end

function p.rapide()
	local fonction = {f, g, h}
	local t, ecoule, repere = 1, 1, 1
	for i = 1, 3 do
		ecoule = chrono(fonction[i])
		if ecoule < t then
			repere = i
			t = ecoule
		end
	end
	if repere == 1 then repere = "f" end
	if repere == 2 then repere = "g" end
	if repere == 3 then repere = "h" end
	return "La fonction la plus rapide est la fonction "..repere
end
			
return p