Informatica: matrici

Messaggioda Francesca Iavarone » 20/05/2018, 15:14

Salve,non riesco a scrivere un programma. La traccia è: Data una matrice 5x5, sostituire agli elementi dispari il loro doppio.
Grazie in anticipo
Francesca Iavarone
Starting Member
Starting Member
 
Messaggio: 1 di 6
Iscritto il: 20/05/2018, 15:10

Re: Informatica: matrici

Messaggioda killing_buddha » 20/05/2018, 16:48

Codice:
def double_but_only_if_odd(n):
   return 2*n if n % 2 == 0 else n

def do_it_on_matrices(m):
   return zip(*[[double_but_only_if_odd(m[i][j]) for i in range(len(m))] for j in range(len(m)-1)])

(c'è certamente un modo più pitonico di farlo e di evitare di trasporre la matrice con lambda x: zip(*x), ma questo funziona).
- "Everything in Mathematics that can be categorized, is trivial" (P. J. Freyd), which should be understood as: "category theory is good ideas rather than complicated techniques".
- "I always disliked Analysis" (P. J. Freyd)
Avatar utente
killing_buddha
Cannot live without
Cannot live without
 
Messaggio: 2453 di 5766
Iscritto il: 03/05/2008, 17:33

Re: Informatica: matrici

Messaggioda Francesca Iavarone » 20/05/2018, 20:30

Grazie,non ci sarebbe un modo più semplice?? Perché ancora non abbiamo studiato questo tipo di linguaggio.
Francesca Iavarone
Starting Member
Starting Member
 
Messaggio: 2 di 6
Iscritto il: 20/05/2018, 15:10

Re: Informatica: matrici

Messaggioda killing_buddha » 20/05/2018, 20:48

In cosa vuoi scritta la risposta?
- "Everything in Mathematics that can be categorized, is trivial" (P. J. Freyd), which should be understood as: "category theory is good ideas rather than complicated techniques".
- "I always disliked Analysis" (P. J. Freyd)
Avatar utente
killing_buddha
Cannot live without
Cannot live without
 
Messaggio: 2457 di 5766
Iscritto il: 03/05/2008, 17:33

Re: Informatica: matrici

Messaggioda Francesca Iavarone » 20/05/2018, 21:32

Noi li facciamo in C++, utilizzando un linguaggio basilare
Francesca Iavarone
Starting Member
Starting Member
 
Messaggio: 3 di 6
Iscritto il: 20/05/2018, 15:10

Re: Informatica: matrici

Messaggioda niccoset » 20/05/2018, 22:58

Una possibile soluzione potrebbe essere quella di defiinire una funzione come quella che segue

Codice:
void doubleUpOddElements(int A[5][5]){
    for(int i=0; i<5; i++){
        for(int j=0; j<5; j++){
            if (A[i][j] %2 == 1)
                A[i][j] *= 2;
        }
    }
}
" Tutto dovrebbe essere reso più semplice possibile, ma non più semplice ancora. " - Albert Einstein
niccoset
Average Member
Average Member
 
Messaggio: 256 di 584
Iscritto il: 13/06/2013, 07:17


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite