Se il programmatore come si fa il calcolo a mano, tradurlo in PHP non dovrebbe essere un problema.
Se il programmatore come si fa il calcolo a mano, tradurlo in PHP non dovrebbe essere un problema.
Gentili andreacavicchi e Alhazred, non sono riuscito a scrivere quì sotto la procedura da tradurre in php per trovare le combinazioni perché il sistema non mi incolonna bene (se no avrei il link ad una pagina del mio sito ma forse questi links sono proibiti) ma la domanda in sostanza è questa: se php avesse già in sé una sua procedura automatica, quella sarebbe una strada più semplice come io presumo, per trovare le combinazioni, vero? Grazie!
Ultima modifica di barkero; 22-08-2014 a 00:18 Motivo: il sistema ha ristretto il campo e non incolonna bene
non è complicato "emulare" il calcolo combinatorio in PHP
sotto un esempio fatto apposta per il caso postato
Codice PHP:
<?php
// calcolo combinatorio
function factorial($num) {
if($num == 1 || $num == 0) {
return $num;
}
$fact = $num;
for($i = $num - 1; $i > 0; $i--) {
$fact = $fact * $i;
}
return $fact;
}
$casi = 11;
$gruppi = 2;
$combinazioni = factorial($casi)/(factorial($casi - $gruppi) * factorial($gruppi));
echo $combinazioni;
?>
Ciao clasku, non essendo un programmatore in grado di capire il tuo codice, ti chiedo:
-quanto tempo impiegherebbe per darmi ad esempio le combinazioni con 7 numeri su 11? Eccone alcune:
1234567, 25689DU e così via fino a tutte le possibili 330.
-quale sarebbe l'eventuale limite? Ad esempio, riuscirebbe a darmi le combinazioni con 7 numeri su 700? Presumo siano a dir poco dei milioni e nel caso ce la facesse, quanto ci metterebbe?
Grazie!
Ultima modifica di barkero; 22-08-2014 a 09:58
il codice di sopra calcola il numero delle possibili combinazioni, non le genera
per numeri di combinazioni elevati, va in errore perché raggiunge il limite massimo previsto per i float in php (ad esempio, 7 numeri su 150 restituisce 294.109.729.200 combinazioni, basta superare le 170 e si arriva ad infinito per il php)
Beh, arrivare fino a 169, non male, considerando che sul web, dopo lunghe ricerche, ho trovato un programmino che arriva solo fino a 10 ma allora, per generarle anche come si fa?
ero incuriosito dal problema della generazione delle combinazioni e girando su internet sono incappato in questa pagina dove c'è un esempio di codice molto interessante
http://www.webdeveloper.com/forum/sh...303#post644303
per la cronaca, Python ha una sua libreria apposita e con una riga di codice si ottiene il risultato...
quindi clasku, vuoi dire che con quel codice si potrebbero generare le combinazioni con x numeri su/fino a 169 numeri?
Ultima modifica di barkero; 23-08-2014 a 19:27
Credo di si, deve esserw adattato al tuo caso però
allora girerò la info al programmatore per forse risparmiargli tante ore di tempo che avrebbe impiegato per scrivere ex novo il codice generante le combinazioni, se effettivamente ce n'è uno standard già pronto, il quale, non ai livelli dell'ipersoftware del quale si avvalgono i 3 Nobel 2013 per la Chimica ma certamente ad uno stadio "artigianale" molto importante anch'esso, potrebbe essere usato, non solo per i sistemi di gioco, come in questo mio caso ma anche appunto per provare delle combinazioni di elementi nel campo della Chimica, della Medicina, della Fisica, della Musica e praticamente in ogni dove...