home *** CD-ROM | disk | FTP | other *** search
/ Freelog 30 / Freelog030.iso / Prog / reducteur.py
Text File  |  2001-10-20  |  2KB  |  46 lines

  1. # By the Blue Velvet League
  2. # pour Freelog
  3.  
  4. # reducteur de combinaisons
  5.  
  6. # saisie des valeurs maxi de l'intervalle
  7. nmax=input('valeur maxi (plafond=49) ')
  8. nmax=nmax+1
  9.  
  10. # definition de la procedure de comparaison historique
  11. def compare(index,nb1,nb2,nb3,nb4,nb5,nb6):
  12.     identiques=0
  13.     for compt in range(1,index+1):
  14.         if (nb1==oldnb1[compt] or nb1==oldnb2[compt] or nb1==oldnb3[compt] or nb1==oldnb4[compt] or nb1==oldnb5[compt] or nb1==oldnb6[compt]):
  15.             identiques=identiques+1
  16.         if (nb2==oldnb1[compt] or nb2==oldnb2[compt] or nb2==oldnb3[compt] or nb2==oldnb4[compt] or nb2==oldnb5[compt] or nb2==oldnb6[compt]):
  17.             identiques=identiques+1
  18.         if (nb3==oldnb1[compt] or nb3==oldnb2[compt] or nb3==oldnb3[compt] or nb3==oldnb4[compt] or nb3==oldnb5[compt] or nb3==oldnb6[compt]):
  19.             identiques=identiques+1
  20.         if (nb4==oldnb1[compt] or nb4==oldnb2[compt] or nb4==oldnb3[compt] or nb4==oldnb4[compt] or nb4==oldnb5[compt] or nb4==oldnb6[compt]):
  21.             identiques=identiques+1
  22.         if (nb5==oldnb1[compt] or nb5==oldnb2[compt] or nb5==oldnb3[compt] or nb5==oldnb4[compt] or nb5==oldnb5[compt] or nb5==oldnb6[compt]):
  23.             identiques=identiques+1
  24.         if (nb6==oldnb1[compt] or nb6==oldnb2[compt] or nb6==oldnb3[compt] or nb6==oldnb4[compt] or nb6==oldnb5[compt] or nb6==oldnb6[compt]):
  25.             identiques=identiques+1
  26.     return identiques
  27.  
  28. # initialisations des variables
  29. global oldnb1,oldnb2,oldnb3,oldnb4,oldnb5,oldnb6
  30. oldnb1,oldnb2,oldnb3,oldnb4,oldnb5,oldnb6=[0]*5000,[0]*5000,[0]*5000,[0]*5000,[0]*5000,[0]*5000
  31.  
  32. # creation de la boucle principale
  33. i=0
  34. for nbre1 in range (1,nmax-5):
  35.     for nbre2 in range (2,nmax-4):
  36.         for nbre3 in range (3,nmax-3):
  37.             for nbre4 in range (4,nmax-2):
  38.                 for nbre5 in range (5,nmax-1):
  39.                     for nbre6 in range (6,nmax):
  40.                         if(nbre1<nbre2<nbre3<nbre4<nbre5<nbre6):
  41.                             if (compare(i,nbre1,nbre2,nbre3,nbre4,nbre5,nbre6)<4):
  42.                                 i=i+1
  43.                                 oldnb1[i],oldnb2[i],oldnb3[i],oldnb4[i],oldnb5[i],oldnb6[i]=nbre1,nbre2,nbre3,nbre4,nbre5,nbre6
  44.                                 print i,'-->',nbre1,nbre2,nbre3,nbre4,nbre5,nbre6
  45. print 'Fini, toutes les combinaisons sont lα ...'
  46.