Cita: Mensaje Original por josemi Hola,
Bueno, para 2 es relativamente sencillo. Solo tienes que coger los elementos de 1 a n-1, y emparejarlo con los elemento de i+1 a n, siendo n el numero total de elementos, e i el elemento en curso.
Como estamos en PHP, aqui va el codigo en dicho lenguaje:
Código PHP:
$a=array('a','b','c','d');
$n=count($a);
for($i=0;$i<($n-1);$i++) {
for($j=($i+1);$j<$n;$j++) {
echo $a[$i].' - '.$a[$j].'<br>';
}
}
si no tengo oxidado el cerebro.
Para 3 supongo que sera añadir un nivel mas de anidamiento.
Por supuesto, ya habra un algoritmo generico para r elementos. Intenta buscar 'algoritmo combinatoria' o 'metodos numericos combinatoria' en google.
Saludos.
PD: Si no lo querias en PHP, lo dices y muevo el mensaje al foro de programacion. mmmm es justo lo que busco , un algoritmo que me sirva para N Y R, en tu ejemplo N estaria siendo los elementos del array y r seria el problema ,debido a los anidamientos , por ahi va la cosa si pillo algo lo posteo.
lo màs chistoso es que despues de pintar esas combinaciones , debo de hacer grupos de a 4 sin que se repitan los elementos de esos conjuntos.
osea tomando el jemplo anterior donde n=4 y r= 2
{a,b}, {a,c}, {a,d}, {b,c}, {b,d}, {c,d}.
debo de hacer esto :
{a,d}, {b,c}
{a,c}, {b,d}
{a,b}, {c,d}
en este caso solo se pueden formar grupos de a 2 sin que se repitan los elementos .
muajaja me quiero morir jajaja
quien dijo que las matematicas no servian?