Lenguajes
Web/Otros
Extra
Enlaces

Calculando el Factorial con Ruby

El factorial de un número es lo que en matemática se denota como:

n! = 0 (cuando n = 1)
n! = n*(n-1)!

Por lo tanto, el factorial de 5 sería:

5! = 5*4*3*2*1 = 120

Podemos calcular el factorial fácilmente tanto con un bucle como con una función recursiva. Vamos a hacerlo con este último método, definiendo una función que es llamada a si misma:

def factorial(n)
  if n == 0
    1
  else
    n * factorial(n-1)
  end
end

puts factorial(5)

Tal como hemos definido la función tenemos una gran similitud con la definición matemática. Si n es 0, devolvemos 1, si no, hacemos n*(n-1)!. Una gran ventaja de Ruby es que nos permite cálculos de números grandiosos, por ejemplo, podemos calcular el factorial de 500 (pruébalo en cualquier calculadora, seguro que no te lo calcula ;)

...
puts factorial(500)
...
$ ruby factorial.rb 
1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

 

 


Redactado por Nenillo

Inicio | JavaScript necesario para este enlace

Noticias en RSS2 XHTML Vlido CSS Vlido