Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Funzione per Combinazioni

    Salve a tutti, mi servirebbe una piccola funzioncina che mi stampi a video tutte le possibili combinazione di TRE caratteri che si possono formare con "abcdefghijklmnopqrstuvwxyz0123456789"

    Qualcuno ne una da parte?
    Thanx VVoVe:
    What is the |\/|atrix?

  2. #2
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392

    Re: Funzione per Combinazioni

    Originariamente inviato da |\/|atrix
    Salve a tutti, mi servirebbe una piccola funzioncina che mi stampi a video tutte le possibili combinazione di TRE caratteri che si possono formare con "abcdefghijklmnopqrstuvwxyz0123456789"

    Qualcuno ne una da parte?
    Thanx VVoVe:
    Beh, ho un'idea che mi è venuta ora...

    metti tutti i caratteri in un'array numerico:
    codice:
    $newstring = "";
    $chars = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");
    li estrai a caso con array_rand...
    http://it.php.net/array-rand


  3. #3
    se non erro e' 3 alla 35esima ... auguri


    [editato]
    no, e' 35 alla terza
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da andr3a
    se non erro e' 3 alla 35esima ... auguri
    :master:

  5. #5
    Originariamente inviato da PaTeR
    :master:
    sono 42875 combinazioni possibili
    ( univoche per ordine, perche' senno' sono di meno se si considera aab == baa ... per esempio )


    Si chiama calcolo combinatorio
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da andr3a
    sono 42875 combinazioni possibili
    ( univoche per ordine, perche' senno' sono di meno se si considera aab == baa ... per esempio )


    Si chiama calcolo combinatorio
    codice:
    $string = "";
    $chiavi = array_rand($chars, 3);
    $string .= $input[$chiavi[0]];
    $string .= $input[$chiavi[1]];
    $string .= $input[$chiavi[2]];
    Non si può fare?

  7. #7
    Originariamente inviato da PaTeR
    codice:
    $string = "";
    $chiavi = array_rand($chars, 3);
    $string .= $input[$chiavi[0]];
    $string .= $input[$chiavi[1]];
    $string .= $input[$chiavi[2]];
    Non si può fare?
    non e' il modo corretto per farlo


    questo e' il grafico , bruttino m aspiega cosa accade:
    http://xoomer.virgilio.it/btkvic/calccomb/sld014.htm


    ora , so come calcolare quante possibilita' ci sono con ripetizione della lettera, esempio aaa , o senza, abc perche' aba non puo' esistere, ma non so come prelevare ogni singola combinazione
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da andr3a
    non e' il modo corretto per farlo


    questo e' il grafico , bruttino m aspiega cosa accade:
    http://xoomer.virgilio.it/btkvic/calccomb/sld014.htm


    ora , so come calcolare quante possibilita' ci sono con ripetizione della lettera, esempio aaa , o senza, abc perche' aba non puo' esistere, ma non so come prelevare ogni singola combinazione
    In effetti hai ragione...
    Ma in casi come questi, allora, come dovremmo fare?

  9. #9
    Originariamente inviato da PaTeR
    In effetti hai ragione...
    Ma in casi come questi, allora, come dovremmo fare?
    cosi' ... il fatto e' che non riesco ad automatizzarlo .. avevo fatto lo stesso 'scherzo' per trovare le combinazioni per la reversibilita' di md5


    pero' non so come automatizzare

    $caratteri = Array( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5'. '6', '7', '8', '9' );

    $t = Array();
    $car = &count( $caratteri );
    for( $a = 0; $a < $car; $a++ ) {
    for( $b = 0; $b < $car; $b++ ) {
    for( $c = 0; $c < $car; $c++ ) {
    array_push( $t, $caratteri[$a].$caratteri[$b].$caratteri[$c] );
    }
    }
    }



    // risultati e stampa per controllo
    echo count( $t );
    echo '<pre>';
    var_dump( $t );
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    ok, dotgeek m'e' andato a quel paese


    questa e' mia, ma potete usarla, sfornata adesso


    codice:
    function combinatoryDnk( $match, $container ) {
    	// andr3a [ www.3site.it ] 12/10/2004
    	// EXAMPLE:
    	// 	how many combinations for 3 elemnts in 2 containers ?
    	// 	D3,2 = 3^2
    	// 	... oh, ok, but what are these elements ? :-)
    	// 	combinatoryDnk( 2:Integer, Array( 'elem1', 'elem2', 'elem3' ):Array ):Array
    	// 	... that's all , bye!
    	$__loop = '';
    	$__returnedValue = '';
    	$__limit = &count( $container );
    	$__myMatches = Array();
    	for( $a = 0; $a < $match; $a++ ) {
    		$__loop .= 'for( $_'.$a.' = 0; $_'.$a.' < '.$__limit.'; $_'.$a.'++ ) { ';
    		$__returnedValue .= '$container[$_'.$a.'].';
    	}
    	$__loop .= 'array_push( $__myMatches, '.substr( $__returnedValue, 0, -1 ).' );';
    	for( $a = 0; $a < $match; $a++ ) {
    		$__loop .= ' }';
    	}
    	eval( $__loop );
    	return $__myMatches;
    }

    esempio:

    // $container e' l'array di cui sopra ...

    $combinazioni = combinatoryDnk( 3, $container );
    echo count( $combinazioni );
    echo '<pre>';
    var_dump( $combinazioni );



    Calcolo combinatorio dinamico, era semplice ma non ci arrivavo ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.