All pastes #45640 Raw Edit

combinatoria

public python v1 · immutable
#45640 ·published 2006-03-14 10:27 UTC
rendered paste body
#! /usr/bin/even python# -*- coding: iso-8859-15 -*-def combinatoria(k, r):  def factorial(n):    if n == 1:      return 1    elif n == 0:   #El factorial de 0 es 1 o eso creo :_D      return 1    else:      return n * factorial(n-1)  resultado = factorial(k)/(factorial(r)*factorial(k-r))  return resultado #El valor que devuelve la funcion combinatoriadef euromillon():  return combinatoria(50, 5) * combinatoria(9, 2) # Combinacion de Casillas por Estrellasdef son_letras(vector):  # Funcion para verificar que solo se introducen numeros  alguna_letra = False  for c in vector:    if not( c >= '0' and c <= '9' ):      alguna_letra = True      break  if alguna_letra:    #print'Hay alguna letra'    return True  else:    #print'Todo va bien, ninguna letra introducida'    return False##### Comprobacion de la funcion factorial(n)## n = int(raw_input('Escribe el factorial a calcular: '))# print'El resultado es: %d' % factorial(n)######salida = ' 'while salida != 'exit':  print'Escribe los valores naturales para la combinación (k,r)'  k1=(raw_input('Valor de k = '))  r1=(raw_input('Valor de r = '))  if not( (son_letras(k1) == False) and (son_letras(r1) == False) ):    print "¡Error! Datos incorrectos."  else:    k = float(k1)    r = float(r1)    if (k <= r):      print '\n¡¡¡ Error !!! k tiene que ser mayor que r.\n'    #elif ( k < 0 or r < 0):    #####  Ya no es necesario, al introducir la funcion son_letras()    #  print'\n¡¡¡ Error !!! Debes introducir números naturales.\n'    else:      print'Las combinaciones posibles son %d' % int(combinatoria(k, r))      print'Las combinaciones posibles del euromillon son: %d'% euromillon()      salida = raw_input('Pulse una intro para continuar\nPara salir teclee \'exit\'\n')