Foros del Web » Programando para Internet » PHP »

PHP OO Combinaciones de numero para loterias

Estas en el tema de Combinaciones de numero para loterias en el foro de PHP en Foros del Web. Hola comunidad. hace unos dias realize un pequeno programa que me permite realizar la combinaciones posibles una cantidad de numero agrupados en 3 digitos. pero ...
  #1 (permalink)  
Antiguo 09/11/2012, 11:56
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación Combinaciones de numero para loterias

Hola comunidad. hace unos dias realize un pequeno programa que me permite realizar la combinaciones posibles una cantidad de numero agrupados en 3 digitos. pero no he podido ajustar algunas cosas que quisiera que me ayudaran si pueden. la idea es la siguiente:

si introduzco un triple: 111 este solo tiene una combinacion posible que es el mismo numero

si triple: 112 sus combinaciones son 3 : 112-121-211

si triple: 123 sus combinaciones son 6: 123-132-213-231-312-321

hasta aqui estamos bien, pero existe algo que son super permutas que necesito hacer para un sistema de loterias.

ya mi sistema logra sacar los triples principales para combinar. ejemplo

numero 1234: sus triples son: 123-124-134-234: todos difererentes son 6 combinaciones posibles cada uno para un total de 24 combinaciones.

hasta aqui mi algorismo lo hace pero el problema es cuando el cliente pide:

ejemplo1: numero :1123 sus triples principales: 112-113-123 de las cuales los triples 112 y 113 son tres combinaciones cada uno para un total de 6 y el 123 son 6 combinaciones cada uno para un total de 6. y asi la suma de la combinaciones posibles de 1123 es 12 triples.

ejemplo2: numero: 11323: sus principales: 113-112-132-133-323, los numeros que tienen dos iguales 113-112-133-323 son tres combinaciones para un total de 12 y el numero 132 de 6 combinaciones posibles para un total de 18 triples

asi con todas las cantidades posibles permitidas por la base de datos o la memoria.

mi algoritmo aunque un poco alcaico es el siguiente. de ante mano gracias por la ayuda si la realizan.


<?php
$numero = isset($_REQUEST['txtpermuta'])?$_REQUEST['txtpermuta']:null;

$btn = isset($_REQUEST['btn'])?$_REQUEST['btn']:null;

echo "Digitos = ".$cant = strlen($numero);
echo "<br>";

$pos=0;
$a=0;
$b=1;
$c=2;
$triple = Array();
$trip=0;


if($btn=="Permutar"){
for($x=0;$x<$numero;$x++){
$n[$x] = substr($numero,$x,1);
}


for($y=0;$y<=$cant;$y++){

for($z=0;$z<$cant;$z++){
if($c<$cant){

if($n[$a]!=$n[$b] && $n[$a]!=$n[$c] && $n[$b]!=$n[$c]){
//echo "<script>alert('Si Todos son Diferentes');</script>";
$triple[$pos++] = $n[$a]."".$n[$b]."".$n[$c];
$triple[$pos++] = $n[$a]."".$n[$c]."".$n[$b];
$triple[$pos++] = $n[$b]."".$n[$a]."".$n[$c];
$triple[$pos++] = $n[$b]."".$n[$c]."".$n[$a];
$triple[$pos++] = $n[$c]."".$n[$a]."".$n[$b];
$triple[$pos++] = $n[$c]."".$n[$b]."".$n[$a];*/

}


if(($n[$a]==$n[$b] && $n[$a]!=$n[$c]) ||
($n[$a]==$n[$c] && $n[$a]!=$n[$b]) ||
($n[$b]==$n[$c] && $n[$a]!=$n[$b])){
//echo "<script>alert(' Sin dos son iguales');</script>";
$triple[$pos++] = $n[$a]."".$n[$b]."".$n[$c];
$triple[$pos++] = $n[$c]."".$n[$a]."".$n[$b];
$triple[$pos++] = $n[$b]."".$n[$c]."".$n[$a];
}
if($n[$a]==$n[$b] && $n[$a]==$n[$c] && $n[$b]==$n[$c]){
//echo "<script>alert(' Todos iguales');</script>";
$triple[$pos++] = $n[$a]."".$n[$b]."".$n[$c];
}
$c++;
}
}
if($b!=$cant-2){
$b++;
$c = $b + 1;
}else{
$a++;
$b = $a + 1;
$c = $b + 1;
}
}

}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
<title>Sans Titre</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="HAPedit 3.1">
</head>
<body bgcolor="#FFFFFF">
<br><br>

<form action="permuta.php" name="frmPermuta" method="post">
Permuta:
<input type="text" name="txtpermuta" size="20" value="<?php echo $txtpermuta; ?>" tabindex="1"/><br><br>
Monto:
<input type="text" name="txtmonto" size="10" value="<?php echo $txtmonto; ?>" tabindex="2"/><br><br>
<input type="submit" name="btn" value="Permutar" tabindex="3"/>
</form>

<textarea name="txtriples" rows="10" cols="20" readonly>
<?php
for($i=0;$i<=count($triple);$i++){echo $triple[$i]."\n";}
?>
</textarea>
<br>
Triples: <input type="text" name="txtCantTrip" value="<?php echo count($triple); ?>" size="20" /><br>
</body>

</html>

Etiquetas: combinaciones, loterias, pemutas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:39.