RISOLTO Programma Octave

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

grillo370

Nuovo Utente
Messaggi
12
Reazioni
0
Punteggio
20
Salve a tutti dovrei svolgere questo esercizio ma non so come fare, non ho mai usato matlab/octave ed ho solo una sorta di guida sui comandi:
Si scriva una funzione Octave denominata Verifica che, dati due vettori di interi V e W ed un intero k,
restituisca il numero di elementi in V che siano numeri primi e per i quali il vettore W contenga almeno k multipli.

Ad esempio, per V={12, 13, 8, 24, 3}, W=[34, 39, 26, 6] e k=2,
la funzione Verifica restituisce 2, poiché gli elementi primi che compaiono nel vettore V
hanno almeno k=2 multipli nel vettore W (in maggior dettaglio, i k multipli sono {39, 26} per
l’elemento 13 e {6, 39} per l’elemento 3).
 
non ho mai usato matlab/octave
Quindi non sai scrivere nulla ?
Come mai un esercizio su un argomento che non conosci ?

Da regolamento:
La sezione Programmazione e le sue sottosezioni non offrono un servizio di risoluzione compiti scolastici.
E' possibile chiedere aiuto ma allegando il codice scritto o le prove fatte.
 
In pratica non trovo la funzione in octave che corrisponde a isdivisible in matlab
--- i due messaggi sono stati uniti ---
In pratica non trovo la funzione in octave che corrisponde a isdivisible in matlab
function[N]=verifica[V,W,k]
N=0;
LV=length(V);
LW=length(W);
For i=1:LV
If prime(V(i))==1
Cont=0;
For j=1:LW
If div(V(i),W(j))==1 <---- non trovo questa
cont++;
end
end
If cont>k-1
N++;
end


end
end
 
Ragiona:
tu hai già una funzione che ti dice se un numero è primo, che in realtà sarebbe stato il vero problema!
Come fai a capire quando un numero del vettore W è multiplo di un numero primo in V?
Basta che dividi ciascun numero di W per il numero primo che stai controllando: se il resto della divisone è zero hai trovato un multiplo.
La funzione che cerchi è la classica MOD (modulo) cioè scriverai qualcosa come
if (W(j) mod V(i) == 0 ) --> hai trovato un multiplo
ora, io non conosco la sintassi di Octave ma sarà qualcosa di molto simile a quello che ho scritto in grassetto, per esempio
if ( mod(W(j), V(i)) == 0 ) --> il resto della divisione tra W(j) e V(i) è 0, quindi W(j) è un multiplo di v(i)
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top