Visualizzazione dei risultati da 1 a 4 su 4

Discussione: funzione permutazioni

  1. #1

    funzione permutazioni

    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...

  2. #2
    Nessuno sa darmi una mano?

  3. #3
    qual'è il risultato finale? se ad esempio gli passi 123?
    La programmazione...
    che passione!!..

  4. #4
    il risultato è un loop infinito di

    Notice: Array to string conversion in ...

    e di

    Notice: Undefined offset: 3 in ...

    e similari...

    ci sta qualcosa che non va... ma non riesco a capire cosa e dove... penso qualcosa che abbia a che fare con gli array, con le variabili locali e globali... (IMHO)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.