Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-09-2008, 11:22   #1
Davix12
Junior Member
 
Iscritto dal: May 2008
Messaggi: 27
[Qualsiasi] Pseudo-codice per associazioni combinatorie

Salve a tutti,
sapreste essermi d'aiuto per questo mio problema? Ho un vettore V di N elementi e vorrei assegnare a 3 variabili (a,b,c) tutte le combinazioni semplici di valori.
ESEMPIO: da questo vettore: N=5 [9,3,1,7,4] arrivare a tutte le 10 combinazioni semplici (ordine non importante, niente doppioni) possibili a,b,c= (V[1],V[2],V[3]; V[1],V[2],V[4]; ......)


avevo pensato ad una roba semplice del genere:
Codice:
for p=1 to N {
    for q=2 to N {
         for r=3 to N {
              a=V[p]
              b=V[q]
              c=V[r]
         } 
     } 
}
ma ovviamente è sbagliato perchè verrebbe fuori anche la combinazione a,b,c=(V[1],V[3],V[3]) che ripete 2 elementi


Avete qualche idea? Lo devo scrivere in Matlab, ma mi basta sapere come impostare l'algoritmo.
Davix12 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 11:58   #2
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
ma quest'algoritmo deve funzionare solo a triplette???oppure vuoi combinazioni (N,K) con K generico? (oltre che N)
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 12:17   #3
Davix12
Junior Member
 
Iscritto dal: May 2008
Messaggi: 27
No, solo a triplette.

Tutte le triplette possibili senza ripetizioni e senza considerare l'ordine. a,b,c=(1,2,3) da considerare uguale a a,b,c=(2,3,1) quindi basta solo una di queste 2 combinazioni

Ad esempio se V=[1,2,3,4,5] ci sono 10 combinazioni con questi requisiti: abc=(1,2,3; 1,2,4; 1,2,5; 1,3,4; 1,3,5; 1,4,5; 2,3,4; 2,3,5; 2,4,5; 3,4,5) oppure sempre queste triplette con i singoli elementi in diverso ordine...

Ultima modifica di Davix12 : 19-09-2008 alle 12:22.
Davix12 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 13:23   #4
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da Davix12
avevo pensato ad una roba semplice del genere:
Codice:
for p=1 to N {
    for q=2 to N {
         for r=3 to N {
              a=V[p]
              b=V[q]
              c=V[r]
         } 
     } 
}
ma ovviamente è sbagliato perchè verrebbe fuori anche la combinazione a,b,c=(V[1],V[3],V[3]) che ripete 2 elementi
basta che controlli che gli indici non siano uguali e sei a posto:

Codice:
for(int i = 0; i < array.length; i++) {
    for(int j = 0; j != i && j < array.length; j++) {
        for(int k = 0; k != j && k != i && k < array.length; k++) {
            System.out.println(array[i] + " " + array[j] + " " +array[k]);
        }
    }
}
il codice è java, per Matlab non dovrebbe essere un problema, togli la stampa a video e se non sbaglio devi far partire gli indici degli array da 1.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 15:24   #5
Davix12
Junior Member
 
Iscritto dal: May 2008
Messaggi: 27
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
basta che controlli che gli indici non siano uguali e sei a posto:

Codice:
for(int i = 0; i < array.length; i++) {
    for(int j = 0; j != i && j < array.length; j++) {
        for(int k = 0; k != j && k != i && k < array.length; k++) {
            System.out.println(array[i] + " " + array[j] + " " +array[k]);
        }
    }
}
il codice è java, per Matlab non dovrebbe essere un problema, togli la stampa a video e se non sbaglio devi far partire gli indici degli array da 1.
Ma così vengono ripetute alcune triplette solo con ordine invertito, no? Tipo mi da la tripletta con i,j,k=(1,3,5) e quella con i,j,k=(1,5,3). Invece io non vorrei triplette ripetute (anche se con ordine degli elementi divero)
Davix12 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 15:46   #6
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
no no, escono le combinazioni semplici, senza ripetizioni.


questo è l'output di una array fatto così {1, 2, 3, 4, 5}:

Codice:
3 2 1
4 2 1
4 3 1
4 3 2
5 2 1
5 3 1
5 3 2
5 4 1
5 4 2
5 4 3
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"

Ultima modifica di Oceans11 : 19-09-2008 alle 15:47. Motivo: aggiunta output
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 16:28   #7
Davix12
Junior Member
 
Iscritto dal: May 2008
Messaggi: 27
Hai ragione, grazie mille!!!

Sbagliavo a riportarla in matlab

Grazie ancora!
Davix12 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 16:30   #8
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Di niente...tra l'altro con tutti gli svarioni che sto facendo oggi, ci poteva stare che avessi sbagliato! infatti sono andato subito a controllare che mi aveva preso un colpo
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 19-09-2008, 16:43   #9
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Questa è la mia versione, in C:

Codice:
#include <stdio.h>

int main()
{
	int k, x, y;
	int a, b, c;

	unsigned int DimArray;
	unsigned int numeri[5];

	DimArray = (sizeof(numeri) / sizeof(numeri[0]));

	numeri[0] = 1;
	numeri[1] = 2;
	numeri[2] = 3;
	numeri[3] = 4;
	numeri[4] = 5;

	k = 0;

	printf("\n");

	while ( k < DimArray - 2 )
	{
		a = numeri[k];

		x = k + 1;
		while ( x < DimArray - 1 )
		{
			b = numeri[x];

			y = x + 1;
			while ( y < DimArray )
			{
				c = numeri[y];	

				printf("%d %d %d\n", a, b, c);

				y++;
			}
			x++;
		}
		k++;
	}

	printf("\n");

	return 0;
}
Questo è il risultato su un array inizializzato con i valori 1 2 3 4 5:
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Secondo Elon Musk FSD è più...
Anche Cloudflare fissa il 2029 per la si...
Hacker sfruttano da mesi un bug segreto ...
ASUSTOR Lockerstor 24R Pro Gen2: 24 bay ...
Rigetti supera la soglia dei 100 qubit: ...
eFootball raggiunge il miliardo di downl...
Come provare OpenClaw facilmente grazie ...
Microsoft conferma: questo glitch dell'o...
Toyota bZ7: una berlina da oltre 5 metri...
Artemis II, le prime foto del lato nasco...
Sempre più pubblicità su YouTube: arriva...
Polestar fa +80% in Italia e tocca quota...
Il tuo Mac smette di connettersi a Inter...
La nuova alleanza Intel-Google ridefinis...
Energia troppo cara, regole da rivedere:...
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: 22:11.


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