Foros del Web » Programando para Internet » PHP »

Conbinatoria php

Estas en el tema de Conbinatoria php en el foro de PHP en Foros del Web. Salu2 a los usuarios de este foro, tengo una inquietud y me gustaria que me puedan ayudar, tengo el siguiente codigo: Código PHP: <?php $a ...
  #1 (permalink)  
Antiguo 08/09/2010, 13:49
Avatar de josevirtual  
Fecha de Ingreso: diciembre-2006
Mensajes: 51
Antigüedad: 17 años, 3 meses
Puntos: 1
Exclamación Conbinatoria php

Salu2 a los usuarios de este foro, tengo una inquietud y me gustaria que me puedan ayudar, tengo el siguiente codigo:
Código PHP:
<?php
$a
=array(10,2,8,3,11,5);
for(
$i=0;$i<count($a);$i++)
{
    for(
$j=$i+1;$j<count($a);$j++)
    {
        for(
$x=$i+$j+1;$x<count($a);$x++)
        {
            echo 
$a[$i]." - ".$a[$j]." - ".$a[$x]."<br>";
        }
    }
?>
este codigo saca las posibles combinaciones que podria existir agrupados de 3 sin que se repitan los elementos del array, el punto es que me gustaria hacer una funcion general en el cual le envie el array y la agrupacion, pero no sé como hacerlo , para ello pido vuestro apollo para darme algunas sugerencias por favor
gracias de antemano por sus respuestas.
__________________
http://fullwebdesigner.com.ar webcomputercusco
  #2 (permalink)  
Antiguo 08/09/2010, 14:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Conbinatoria php

Podrías crear una función que se llame a si misma. Eso se conoce como función recursiva. Mira este ejemplo http://www.forosdelweb.com/3472337-post2.html
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/09/2010, 14:19
Avatar de josevirtual  
Fecha de Ingreso: diciembre-2006
Mensajes: 51
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Conbinatoria php

estaba tratando de hacerlo asi, llegé hasta este punto
Código PHP:
for($i=0;$i<count($a);$i++)
{
    
combinaciones($i,$a,3);
}
function 
combinaciones($nelementos$data$agrupados)
{
    for(
$i=$nelementos+1;$i<count($data);$i++)
    {
        echo 
$data[$nelementos]." - ".$data[$i]."<br>";
    }

el problema es que la agrupacion tiene que ser dinámica
__________________
http://fullwebdesigner.com.ar webcomputercusco
  #4 (permalink)  
Antiguo 08/09/2010, 15:27
Avatar de josevirtual  
Fecha de Ingreso: diciembre-2006
Mensajes: 51
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Conbinatoria php

gracias por la ayuda tan pronta, logré resolverlo... si a alguien le sirve el codigo lo posteo aqui
Código PHP:
function comb($a$len){
   if (
$len count($a))return 'error';
   
$out = array();
   if (
$len==1) {
      foreach (
$a as $v$out[] = array($v);
      return 
$out;
   }
   
$len--;
   while (
count($a) > $len) {
      
$b array_shift($a);
      
$c comb($a$len);
      foreach (
$c as $v){
         
array_unshift($v$b);
         
$out[] = $v;
      }
   }
   return 
$out;
}
$test = array(10,2,8,3);
$a comb($test,3);
foreach(
$a as $i=>$fila)
{
    echo 
json_encode($fila)."<br>";

__________________
http://fullwebdesigner.com.ar webcomputercusco
  #5 (permalink)  
Antiguo 08/09/2010, 16:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Conbinatoria php

Que bien que lo hayas logrado.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
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 06:46.