Consiglio per generalizzare un codice

di il
2 risposte

Consiglio per generalizzare un codice

Salve a tutti sono nuovo e sto lavorando a questo codice ma non sono espertissimo dj python ma sto cercando di imparare tutti le sue funzioni.. dunque, io ho questi 3 processi all'interno del mio codice ma mi chiedevo se ci fosse un modo per riassumerli in uno solo. Anticioo che questo programma mi servirà come aiuto per le scommesse sportive.. io inserirò le quote di vittoria,pareggio e sconfitta di ogni partita e il programma mi dirà cosa puntare per vincere la quota desiderata. Cioè che mi serve é appunto la generalizzazione del processo perché in questo caso comprende solo 3 partite ed é molto semplice ma vorrei aumentarne il numero. Se non avete capito qualcosa chiedetemi pure; spero riusciate a risolverli il problema o almeno consigliarmi una via.. grazie in anticipo!

 

partita1={x1, z1, y1}
partita2={x2, z2, y2}
partita3={x3, z3, y3}
#valori numerici da inserire

def testPartite1(prodotto):
    if prodotto < 20: 
    #20 é la variabile di guadagno
      None  
      
    else:
      print(prodotto,prodotto2)
   
for c1 in partita1:
    for c2 in partita2:
        #oltre al numero il prodotto dovrebbe dare le combinazioni per ottenere quel prodotto 
         prodotto=c1*c2
         prodotto2=prodotto/c1,prodotto/c2
         testPartite1(prodotto)
         
         

def testPartite2(prodotto):
    if prodotto < 20: #20 é da sostituire con una variabile con input
      None  
      
    else:
      print(prodotto,prodotto2)
   
for c2 in partita2:
    for c3 in partita3:
         #oltre al numero il prodotto dovrebbe dare le combinazioni per ottenere quel prodotto 
         prodotto=c2*c3
         prodotto2=prodotto/c2,prodotto/c3
         testPartite2(prodotto)   
         
         


def testPartite3(prodotto):
    if prodotto < 20: #20 é da sostituire con una variabile con input
      None  
      
    else:
      print(prodotto,prodotto2)
   
for c1 in partita1:
    for c3 in partita3:
         #oltre al numero il prodotto dovrebbe dare le combinazioni per ottenere quel prodotto 
         prodotto=c1*c3
         prodotto2=prodotto/c1,prodotto/c3
         testPartite3(prodotto)       
         
         
#prendendo due partite alla volta il processo funziona poiche é molto semplice prendendo n=3 e k=2... aumentando sia k che n le combinazioni di partite aumentano e diventerebbe impossibile copiare cosi tante volte il processo.. bisogna trovare un modo di generalizzarlo   

2 Risposte

  • Re: Consiglio per generalizzare un codice

    Scusa, non credo di aver capito molto il tuo problema ma, visto che nessuno ti ha ancora risposto, provo a darti una dritta.
    Mi sembra che tu abbia il problema di generare delle combinazioni: hai provato ad utilizzare il modulo itertools? ()
  • Re: Consiglio per generalizzare un codice

    Intanto grazie della risposta e immaginavo che il mio problema non fosse capito.. provo a spiegarlo meglio:
    Allora io parto da 3 partite calcistiche; sappiamo che una partita si può concludere in 3 modi: vittoria pareggio e sconfitta ed ognuno di questi 3 modi ha una determinata quota. Quindi 3 modi in ogni partita costituiscono 3 insieme dove in ciascun insieme ci sono le 3 quote della partita stessa. A me interesserebbe un programma che mi desse il PRODOTTO di tutte le combinazioni possibili di 2 elementi tenendo conto che l'ordine non è importante ma é importante che entrambi gli elementi facciano psrte di due insiemi diversi. Spero abbiate capito provo a schematizzarlo:
    Partita 1: {x1,z1,y1}
    Partita 2: {x2,z2,y2}
    Partita 3: {x3,z3,y3}
    Mi servirebbe un programma che mi desse come risultato:
    x1*x2
    x1*x3
    x1*z2
    X1*z3
    x1*y2
    x1*y3
    z1*x2
    z1*z3
    z1*z2
    Ecc ecc..
    Spiego inoltre perché le combinazioni con itertools non mi vanno bene.. poiché queste combinazioni mi danno solo la combinazione dei due numeri ma non il loro prodotto! Spero riusciate a capire e ad aiutarmi grazie!!
Devi accedere o registrarti per scrivere nel forum
2 risposte