[Php-it] Prodotto cartesiano tra array

Emiliano Gabrielli (aka AlberT) AlberT at superalbert.it
Mon Jul 10 11:24:23 CEST 2006


On Monday 10 July 2006 10:40, Giovanni Cappellini wrote:
> Il prodotto cartesiano di n insiemi è l'insieme di tutte le possibili
> tuple aventi n elementi, dove per ogni k che va da 0 a n l'elemento k
> della tupla appartiene all'insieme k.
>


N insiemi, N elementi, insieme k ?? mi sa che qui si sta facend un po' di 
confusione sulla terminologia però ...  

qui si fa confusione tra insiemi, vettori *sull*'insieme, tupla (che non è un 
termine dell'algebra vettoriale) ... 


> Quindi per essere coerenti dal punto di vista logico-matematico avrei
> dovuto far restituire alla funzione un insieme di vettori, 

il prodotto cartesiono di due insiemi è un insieme ... ma se gli insiemi di 
partenza sono insiemi di frutti l'insieme risultante è composto di frutti ... 
stiamo dunque parlando di prototto *cartesiano* tra due insiemi di vettori??

o stiamo racchiudendo in due vettori (di N ed M componenti) gli elementi di 
due insiemi (P  e Q)? 


> tuttavia in 
> base allo scopo finale che era quello di ottenere tutte le possibile
> concatenazioni di stringhe ho reso concreto il concetto astratto di
> prodotto cartesiano all'interno della funzione.

e credo che sei andato un tantino fuori del seminato :-P

se vuoi solo tutte le possibili combinazioni di stringhe appartenenti ad *un* 
insieme dato allora hai N(N-1)/2 combinazioni (formula di Gauss) .. ma se 
invece $str1.$str2 è *diversa* da $str2.$str1 allora il "/2" va via ...

ovviamente la formula di gauss non conta la stringa $str1.$str1 .. cosa che 
invece il doppio foreach fa ...

tutto dipende da quale è il reale scopo .. 

Perdonami la quasi polemica, ma credo che nel porre quesiti si dovrebbe essere 
un tantino meno generici per avere risposte utili...

BTW, nella prima mia risposta credevo volessi effettuare il prodotto scalare 
tra due vettori... cosa che sinceramente non mi pare sia fattibile 
direttamente con array_sum() e array_product() [php5]...


comunque, prima che le mie rimembranze di metodi si facciano meno vaghe credo 
che finalemnte abbiamo capito cosa ti serviva :-)))

buona giornata
-- 
<?php echo '     Emiliano Gabrielli (aka AlberT)     ',"\n",
'  socio fondatore e membro del direttivo del GrUSP  ',"\n",
' AlberT_at_SuperAlberT_it   -   www.SuperAlberT.it  ',"\n",
'  IRC:    #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>


More information about the Php-it mailing list