J'ai des bases très faibles en Python, mais je me débrouille globalement en programmation.

Je veux faire un truc comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
for i1 = 1 to  n1 step p1
  for i2 = 1 to n2 step  p2
      for i3 = 1 to n3 step p3
          if ok00 (i1,i2,i3)  then 
             for i4 = 1 to n4 step p4
                 for i5 = 1 to n5 step p5
                     if ok01 (i1,i2,i3, i4, i5)  then 
                        for i6 = 1 to n5 step p6
                             if f(i1,i2,i3,i4,i5,i6) <   best_resultat  then       best_data = (.... )
                        next i6
                     end if
                 next i5
             next i4
         end if
      next i3
   next i2
next i1
En vrai, j'ai même 11 boucles imbriquées. Et je recherche le minimum d'une certaine fonction.
Je peux éliminer certaines combinaisons (les fonctions ok00 et ok01 .... qui font intervenir des fonctions trigo ou autres).
Les pas p1, p2, p3 ... seraient tout petit à l'idéal, mais pour des raisons de performance, je vais devoir faire des impasses.

En fonctionnant ainsi , je sais globalement faire.

Mais je sais que ce n'est pas du tout 'Python' comme manière de procéder. Et que ça risque d'être atrocément long. Et quitte à faire comme ça, je ne vais pas utiliser Python.

Je viens d'installer Python, pour faire un truc comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
aa = range(10)
bb= range(15)
dd = [[aa[i] , bb[j] , bb[k]  ] for i in range(len(aa) ) for j in range(len(bb) ) for k in range(len(bb) )    ]
Et là, premier challenge, comment supprimer certaines lignes de dd, par exemple supprimer les lignes telles que x^3+ y^3+ 5*z^3 serait un multiple de 7 ?
Ou comment ne pas les insérer au moment de créer dd !

Et quand je vais exploiter dd , comment je vais récupérer dd.x, dd.y et dd.z ??


Quand vous m'aurez aidé à passer cette étape, j'aurai forcément d'autres questions !