Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
La seconda generazione della citycar elettrica di Dacia passa alla piattaforma RGEV small di Renault Group, cresce di 15 cm in lunghezza e 18 cm in larghezza, adotta un motore da 80 CV e una batteria LFP da 27,5 kWh per 250 km WLTP. Prezzi da 17.900 euro, produzione a Novo Mesto in Slovenia.
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX ha portato sul mercato Picco, un e-reader da 3,97 pollici che pesa 58 grammi e si aggancia al retro dello smartphone con un anello magnetico. Lo abbiamo usato con Pixel 11 Pro XL e iPhone 18 Pro per capire se un formato così ridotto regga la prova della lettura quotidiana
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-09-2007, 10:20   #1
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
[C] Vettori Simili

2 Vettori A e B di lunghezza n e m, si dicono simili se hanno gli stessi elementi.

esempi:
1- A=1,2,3 B=1,3,2 SIMILI
2- A=1,2,3 B=1,1,2,3 SIMILI
3- A=1,2,3 B=1,2,3,4 NON SIMILI

L'ultimo caso mi crea difficoltà...forse dovrei verificare prima gli elementi di A per quelli di B...poi se m>n controllo gli elementi in piu di B con quelli di A.

Che dite andrà??
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 10:33   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da lucas87 Guarda i messaggi
2 Vettori A e B di lunghezza n e m, si dicono simili se hanno gli stessi elementi.

esempi:
1- A=1,2,3 B=1,3,2 SIMILI
2- A=1,2,3 B=1,1,2,3 SIMILI
3- A=1,2,3 B=1,2,3,4 NON SIMILI

L'ultimo caso mi crea difficoltà...forse dovrei verificare prima gli elementi di A per quelli di B...poi se m>n controllo gli elementi in piu di B con quelli di A.

Che dite andrà??
Se n'era già parlato in <questo> thread (è un po' lungo e complesso, non so se ti può essere utile).

Comunque faccio un piccolo riassunto: due array sono simili solo se contengono gli stessi elementi, in qualunque posizione. Per risolvere la questione, giriamo la cosa al negativo: non sono simili se uno dei due array contiene anche solo un elemento che non c'è nell'altro.

Ed è questa la chiave della soluzione. In sostanza vuol dire che devi suddividere la elaborazione in due grossi step: verifica di a contro b e poi viceversa verifica di b contro a. Se trovi un elemento che non c'è nell'altro, allora non sono simili.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:25   #3
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Grazie...avevo infatti pensato di fare cosi...ma poi ho pensato che doveva esserci un modo per non usare 4 cicli. A quanto pare no...ok ti ringrazio.
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:30   #4
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Se a qualcuno interessa posto la soluzione.

Codice:
int simili(int *v,int *w,int dim1, int dim2){
     int i,j;
     int cnt=0;
     for (i=0;i<dim1;i++){
         for (j=0;j<dim2;j++){
             if (v[i]==w[j]){ 
                              cnt++;
                              break;
             }
         }
     }
         if(cnt!=dim1) return 0;
         cnt=0;
         
      for (j=0;j<dim2;j++){
         for (i=0;i<dim1;i++){
             if (w[j]==v[i]){ 
                              cnt++;
                              break;
             }
         }
     }
      if(cnt!=dim2) return 0;
        
         return 1;
     }
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:42   #5
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Che poi scusa un attimo andbin, ma quello delle permutazioni era una cazzata, non bastava ordinare i 2 vettori e verificare che erano identici spiccicati??
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:46   #6
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Posto anche quello delle permutazioni...magari c'è casec87 in ascolto.

Codice:
#include <stdio.h>
#include <stdlib.h>

int perm(int *v,int *w,int dim);
void ordinamento(int *t,int dim);
void swap(int *p,int *q);


int main(void){
    int v[]={1,1,3};
    int w[]={3,3,1};


   ordinamento(v,3);
   ordinamento(w,3);
   
    
    printf("%d",perm(v,w,3));

    
    system("PAUSE");
    return 0;
    
}

void ordinamento(int *t,int dim){
    int i,j;
    for (i=0;i<dim;i++){
        for (j=dim-1;j>i;j--){
            if (t[j-1]>t[j]) swap(&t[j-1],&t[j]);
        }
    }
}

void swap(int *p,int *q){
     int aux;
     aux=*p;
     *p=*q;
     *q=aux;
}

int perm(int *v,int *w,int dim){
     int i,j;
     for (i=0,j=0;i<dim;i++,j++)
        
             if (v[i]!=w[j]) return 0;
         
     return 1;
     }
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:47   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da lucas87 Guarda i messaggi
Che poi scusa un attimo andbin, ma quello delle permutazioni era una cazzata, non bastava ordinare i 2 vettori e verificare che erano identici spiccicati??
Nel caso i due array differiscano nel numero di ripetizioni di certi valori, anche ordinandoli non ottieni due array esattamente identici.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:50   #8
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
Appunto per quello....se differiscono di numero di ripetizioni non sono uno permutazione dell'altro quindi return 0, altrimenti se andando a confrontare in parallelo gli elementi dell'uno e dell'altro e ognuno corrisponde all'altro return 1.
lucas87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:54   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da lucas87 Guarda i messaggi
Appunto per quello....se differiscono di numero di ripetizioni non sono uno permutazione dell'altro quindi return 0, altrimenti se andando a confrontare in parallelo gli elementi dell'uno e dell'altro e ognuno corrisponde all'altro return 1.
Allora non sarebbe più come hai detto all'inizio: A=1,2,3 B=1,1,2,3 SIMILI
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2007, 12:55   #10
lucas87
Bannato
 
Iscritto dal: Oct 2006
Messaggi: 170
nn dicevo quello dei simi...ho detto simili per dire identici...errore mio...se vedi la soluzione infatti vedi che confronto in parallelo e non per pogni elemento di A scorro il vettore B
lucas87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa Nuova Dacia Spring, del modello precedente resta...
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone BOOX Picco: l'ebook reader minuscolo è un...
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
God of War: Sons of Sparta debutta su PS...
Dalle schede madri agli ospedali: ASUS p...
Perché Windows non permette di ch...
Il meglio in 7 articoli del Black Friday...
Black Friday Dyson: sconti fino al 43% s...
Cerebras cresce del 70% nel trimestre e ...
Black Friday Amazon, robot aspirapolvere...
22 milioni di persone coinvolte: il giga...
CPU desktop, Intel rialza la testa e AMD...
NVIDIA, una petizione chiede il ritorno ...
SpaceX Starship: Ship 42 è stata ...
Meta multata per 805 milioni di euro dal...
Jensen Huang avrebbe nascosto ai vertici...
Le prime cuffie over-ear di Vivo arrivan...
GPU, CPU e fotoni: il piano di AMD per p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v