UniprJRC / DSconMATLAB

Il sito che contiene materiale aggiuntivo e tutti i files di codice MATLAB degli esercizi e delle figure del libro.
18 stars 6 forks source link

COMPETIZIONE #518

Open MarcoRianiUNIPR opened 3 hours ago

MarcoRianiUNIPR commented 3 hours ago

Il primo che riesce a creare la matrice di seguito prende un punto in più

image

emmaconta commented 3 hours ago

Ecco il codice di input:

B=zeros(7) n=1 for i=5:4:29 B(n,:)=(i11):(-2)i:-i n=n+1 end

Ho utilizzato un ciclo for: come prima cosa ho inizializzato la matrice "B" e la variabile "n", che ho poi usato per indicare le varie righe della matrice. Nel ciclo ho poi impostato "i" come una sequenza da 5 a 29, di 4 in 4 (numeri che si vedono nella penultima colonna, o nell'ultima con segno opposto). Ho poi trovato la formula che basandosi su questa variabile crea tutta la riga. Infine, per fare in modo che il ciclo proseguisse lungo tutte le righe della matrice, ho posto n=n+1.

MarcoRianiUNIPR commented 3 hours ago

Bravissima @emmaconta. Fatemi sapere se per il futuro volete avere altre competizioni di questo tipo. Commenti sono benvenuti

MarcoRianiUNIPR commented 3 hours ago
% La matrice viene inizializzata
A=zeros(7);
% incremento = differenza tra la riga i e la riga i-1
incremento=44:-8:-4;
A(1,:)=55:-10:-5;
for i=2:7
    % La riga i di della matrice A è uguale alla riga
    % i-1 della matrice A + incremento
    % dove incremento è il vettore [44 36 ... -4]
    A(i,:)=A(i-1,:)+incremento;
end
disp(A)
emmaconta commented 2 hours ago

Questo input è simile alla sua soluzione, ma utilizzando le colonne al posto delle righe

Bchk=zeros(7); incrementochk=[-10:-8:-58]'; Bchk(:,1)=55:44:319; for i=2:7 Bchk(:,i)=Bchk(:,i-1)+incrementochk; end disp(Bchk)

MarcoRianiUNIPR commented 2 hours ago

Esattamente molto brava davvero!!!!!

%% Metodo alternativo basato sulle colonne
A=zeros(7);
% Definisco la prima colonna
A(:,1)=(55:44:319)';
% La colonna j è uguale alla colonna j-1 + incremento
incremento=(-10:-8:-58)';
for j=2:7
    A(:,j)=A(:,j-1)+incremento;
end
Vittoria378 commented 2 hours ago

%inizializzazione della matrice A=zeros(7); A(:,1)=(55:44:319) d=(-10:-8:-58)'; %incremento

for j=2:7 A(:,j)=A(:,j-1)+d;
end disp(A)

Inizializzo una matrice 7*7 Inserisco i numeri della prima colonna con A(:,1) Inserisco l'incremento che varia colonna per colonna nella variabile d sotto forma di vettore colonna Nel ciclo for dalla seconda colonna fino alla settima aggiungerà l'incremento 'd' alla colonna precedente

MarcoRianiUNIPR commented 2 hours ago

Il processo generatore dei dati per creare la matrice A era (5:4:31)'*(11:-2:-1) @emmaconta prende 2 punti in più e @Vittoria378 1 punto in più