Ragazzi, aiuto!!
ho la neccessità di creare un funzione che calcoli tutte le possibili permutazioni (senza ripetizioni) di un input (una serie di numeri, o una serie di lettere o parole...)
per es:
input: abc
output: abc,acb,bca,bac,cab,cba
un mio amico mi ha fornito il codice in ASP, sto tentando di tradurlo in PHP ma mi continua a dare errore...
potreste darmi una mano?
il codice in ASP è il seguente:
codice:
Function permuta(matrice() As String, pre As String) As String
Dim num_elementi As Integer
Dim iteratore, iteratore2 As Integer
Dim creatore As Integer
Dim newMatrice() As String
Dim appoggio As String
num_elementi = UBound(matrice) +1
If num_elementi = 1 Then
Appoggio = pre & matrice(0) & “;”
Else
ReDim newMatrice(num_elementi – 2)
For iteratore = 0 To num_elementi – 1
creatore = 0
For iteratore2 = 0 To num_elementi – 1
If iteratore2 <> iteratore Then
newMatrice(creatore) = matrice(iteratore2)
creatore = creatore + 1
End If
Next
appoggio = appoggio & permute (newMatrice, pre & matrice(iteratore))
Next
End If
permuta = appoggio
End Function
io l'ho "tradotto" così: (ovviamente sbagliato)
codice:
function permuta($matrice,$pre) {
$num_elementi=strlen($matrice);
if ($num_elementi==1) {
$appoggio="$pre"."$matrice[0]".";"; }
else {
for ($iteratore=0; $iteratore<=$num_elementi-1;$iteratore++){
$creatore=0;
for ($iteratore2=0;$iteratore2<=$num_elementi-1;$iteratore2++) {
if ($iteratore2!=$iteratore) {
$newmatrice[$creatore]=$matrice[$iteratore2];
$creatore++;
}
}
if (isset($appoggio))
$appoggio=$appoggio.permuta($newmatrice,$pre.$matrice[$iteratore]);
else $appoggio=permuta($newmatrice,$pre.$matrice[$iteratore]);
}
}
return $appoggio;
}
Grazie cmq a tutti in anticipo...