tal vez...
agregar 2 campos a "cartones"
1 boolean yausado
1 string numerosdelcarton
:: ni siquiera necesitarias tener un campo por cada numero... haciendo un EXPLODE("," , numerosdelcarton ) tendrias un array con todos los nums
el boolean te permite filtrar los ya usados, para obtener un nuevo carton
numerosdelcarton: guardas los numeros ORDENADOS separados con coma (o lo que sea) como un string.... esto te permite buscar el carton mas facil ( en vez de estar creando arrays/ conjuntos e iterando por cada uno de los 15 numeros )
------------
<?php
Código PHP:
Ver originalfunction dameListaNum($cuantos=15, $min=0, $max=99){
if ($cuantos > ($max-$min) ) {die( "error, parametros incorrectos"); } // si $cuantos > numero de permutaciones que se pueden hacer... die ("error, $cuantos > a lo permitido")
$x=0;
while ($x<$cuantos) {
$num_aleatorio = rand($min,$max); if (!in_array($num_aleatorio,$valores)) { $x++;
}
}
// ordena
}
// genero 1000 cartones de prueba
for($i=1;$i<=1000;$i++){
$uncarton = dameListaNum();
}
}
// prueba pa ver si hay duplicados
echo "\n";
// elimino duplicados
// deberia dar 1000 / 1000
?>