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?
ThanxVVoVe:
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?
ThanxVVoVe:
What is the |\/|atrix?
Beh, ho un'idea che mi è venuta ora...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?
ThanxVVoVe:
metti tutti i caratteri in un'array numerico:
li estrai a caso con array_rand...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");
http://it.php.net/array-rand
![]()
se non erro e' 3 alla 35esima ... auguri
[editato]
no, e' 35 alla terza![]()
:master:Originariamente inviato da andr3a
se non erro e' 3 alla 35esima ... auguri![]()
sono 42875 combinazioni possibiliOriginariamente inviato da PaTeR
:master:
( univoche per ordine, perche' senno' sono di meno se si considera aab == baa ... per esempio )
Si chiama calcolo combinatorio![]()
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
Non si può fare?codice:$string = ""; $chiavi = array_rand($chars, 3); $string .= $input[$chiavi[0]]; $string .= $input[$chiavi[1]]; $string .= $input[$chiavi[2]];![]()
non e' il modo corretto per farloOriginariamente inviato da PaTeR
Non si può fare?codice:$string = ""; $chiavi = array_rand($chars, 3); $string .= $input[$chiavi[0]]; $string .= $input[$chiavi[1]]; $string .= $input[$chiavi[2]];![]()
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...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![]()
![]()
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 md5Originariamente inviato da PaTeR
In effetti hai ragione...![]()
Ma in casi come questi, allora, come dovremmo fare?![]()
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 );
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 ...![]()