El cumpleaños: ¡siempre gano yo!
9 invitados y quien cumple años: 10 personas. Cumple 12 años, así que K = 12. Reconstruimos el puesto que lo dejará como último participante.
Algoritmos
Elige el resultado y reconstruye el inicio: una baraja o un círculo de Josephus. Observa, detén y deshaz cada movimiento.
Leer la explicación y los dos problemasHacia delante: tomar de abajo, poner arriba; tomar de abajo, poner sobre la mesa. Hacia atrás: recuperar de la mesa, poner abajo; tomar de arriba, poner abajo.
9 invitados y quien cumple años: 10 personas. Cumple 12 años, así que K = 12. Reconstruimos el puesto que lo dejará como último participante.
20 amigos, 2 ganadores y K = 11. Encontramos los dos puestos que hay que dar a la pareja antes de empezar.
Reunimos a los ganadores. El siguiente perdedor entra como número provisional con ?, retrocede con cada cuenta y se confirma donde llega. La siguiente vuelta empieza desde el último perdedor insertado. Solo al final se encuentra el puesto 1 y se numeran los puestos.
Está activada la preferencia de movimiento reducido. Para ver el traslado, marca esta casilla.
Salidas deseadas, de la primera a la última
Salidas observadas, de la primera a la última
Baraja preparada, de arriba abajo
Las posiciones se etiquetan desde abajo: simulamos el juego y asignamos a cada posición el valor que debe salir cuando le llegue el turno.
| Posición de salida (desde abajo) | Valor que asignar |
|---|
Número con ? → desplazamiento con cada cuenta → confirmación en el mismo lugar → inicio desde el último perdedor insertado. Los números sin ? permanecen fijos.
▼ Referencia inicial: la persona 1 permanece arriba
Solo se mueve el número provisional con ?. El círculo gira únicamente al final.
Si hay muchos números, desplaza el interior del círculo para verlos todos.
El número con ? entra provisionalmente y retrocede un intervalo con cada cuenta; los demás números permanecen fijos. En la cuenta K desaparece el ? y el perdedor se confirma exactamente allí. El siguiente inicio es el último perdedor insertado. Para conservar todas las identidades del array PHP, la primera posición provisional se prepara previamente: con 15 ganadores y K = 9 empieza antes del 9 y llega antes del 1. Tras la última inserción, un recuento separado desde el último perdedor encuentra el puesto 1; solo entonces se gira y numera todo el círculo. El orden final coincide con el bucle PHP.
Ahora los números son puestos: verde = ganador, azul = perdedor. El puesto 1 es donde empieza el recuento para eliminar; no es el número que identifica a la persona 1.
Los puestos se numeran en sentido horario. El recuento para eliminar empieza en el puesto 1 y sigue el sentido elegido; después de cada eliminación vuelve a empezar con la siguiente persona.
Fila en el sentido del recuento, desde el siguiente 1
Puestos que dar a los ganadores
Puestos eliminados en orden