Ciao
ho questo script che genera tutte le combinazioni su 30 numeri su 3 numeri.
Qualcuno saprebbe portarmi allo stesso risultato senza usare le 2 function
subcombi e combinations ?
Chiedo perchè se eseguo for ($combx = 2; $combx < 10; $combx++) lo script va in out of memory (troppe combinazioni). Se avessi lo script senza le function , durante l'esecuzione potrei inserire del codice per
escludere molte delle combinazioni elaborate , e questo mi eviterebbe l'out of memory.
Grazie
ho questo script che genera tutte le combinazioni su 30 numeri su 3 numeri.
Qualcuno saprebbe portarmi allo stesso risultato senza usare le 2 function
subcombi e combinations ?
Chiedo perchè se eseguo for ($combx = 2; $combx < 10; $combx++) lo script va in out of memory (troppe combinazioni). Se avessi lo script senza le function , durante l'esecuzione potrei inserire del codice per
escludere molte delle combinazioni elaborate , e questo mi eviterebbe l'out of memory.
Grazie
PHP:
<?
error_reporting( error_reporting() & ~E_NOTICE );
$numeri="01.02.03.04.05.06.07.08.09.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30";
function subcombi($arr, $arr_size, $count)
{
$combi_arr = array();
if ($count > 1) {
for ($i = $count - 1; $i < $arr_size; $i=$i+1) {
$highest_index_elem_arr = array($i => $arr[$i]);
foreach (subcombi($arr, $i, $count - 1) as $subcombi_arr)
{
$combi_arr[] = $subcombi_arr + $highest_index_elem_arr;
}
}
} else {
for ($i = $count - 1; $i < $arr_size; $i=$i+1) {
$combi_arr[] = array($i => $arr[$i]);
}
}
return $combi_arr;
}
function combinations($arr, $count)
{
if ( !(0 <= $count && $count <= count($arr))) {
return false;
}
return $count ? subcombi($arr, count($arr), $count) : array();
}
$numeri_ar=explode(".",$numeri);
$numeri_ar=array_unique($numeri_ar);
for ($combx = 2; $combx < 4; $combx++)
{
$combi_arr = combinations($numeri_ar, $combx);
}
print_r($combi_arr);
?>
Ultima modifica: