J'ai des bases très faibles en Python, mais je me débrouille globalement en programmation.
Je veux faire un truc comme ça :
En vrai, j'ai même 11 boucles imbriquées. Et je recherche le minimum d'une certaine fonction.
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
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 :
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 ?
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) ) ]
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 !
Partager