El algoritmo todos contra todos puede usarse para eventos deportivos, escolares,laborales, etc.
Vamos a ver este algoritmo sencillo en PHP.
Codigo
Este es el codigo del algoritmo.
$teams = array('Equipo 1','Equipo 2','Equipo 3','Equipo 4',"Equipo 5", "Equipo 6"); $results = array(); foreach($teams as $k){ foreach($teams as $j){ if($k == $j){ break; } $z = array($k,$j); sort($z); if(!in_array($z,$results)){ $results[] = $z; } } }
Tenemos una lista de equipos en un array.
El algoritmo consiste en recorrer todos los equipos en un ciclo for y luego en for anidado volver a recorrer los equipos en un ciclo for.
Luego vamos a comparar en el ciclo interno que el equipo no sea igual y detenemos el ciclo para continuar con el siguiente valor del primer ciclo..
Luego agregamos la combinacion a un array Z y esto lo ordenamos para que cualquier combinacion sera la misma,por ejemplo “Equipo 1 vs Equipo 2” o “Equipo 2 vs Equipo 1”, al ordenar siempre vamos a obtener el resultado de una forma.
Para finalizar comparamos si el array Z esta en el array de resultados, si el array Z no se encuentra en los resultados, entonces, se agrega el array Z dentro de los resultados.
Al final tenemos el array results con todos las combinaciones de equipos posibles para el todos contra todos.
Para mostrar los resultados podemos usar el siguiente codigo.
foreach($results as $ms){ echo $ms[0]." vs ".$ms[1]; echo "<br>"; } echo "<br>Resultados: ".count($results);
Basicamente consiste en recorrer el array de resultados y mostrar las combinaciones.