En la configuración dada del problema, solo hay una combinación de trabajo:
Amigo [0] usa sombrero 2
Amigo [1] usa sombrero 4
Amigo [2] usa sombrero 3
Amigo [3] usa sombrero 1
La función de combinación también es difícil de usar para problemas como este en general, ya que ni la perspectiva “cada amigo elige un sombrero” ni la perspectiva “cada sombrero elige un amigo” se reduce claramente a un problema combinado.
EDITAR: La nueva forma de la pregunta donde solo los amigos adyacentes deben usar sombreros de diferentes colores permite más combinaciones (dos, en este caso), pero no es fundamentalmente más fácil de abordar con la función de combinación.
- ¿Qué partes de las matemáticas son necesarias para que un ingeniero informático las entienda? Específicamente, ¿cuánto cálculo debe saber un ingeniero informático?
- Una máquina de Turing tiene una cantidad infinita de memoria, que no es posible en la vida real. ¿Por qué sigue siendo un buen modelo?
- Me dicen que si n = 25, tenemos Sn = 121392 donde Sn es el número de adiciones realizadas en la siguiente función para calcular el enésimo número de Fibonacci. ¿Alguien puede explicar cómo? Int F (int n) {if (n == 0) return (0); if (n == 1) return (1); retorno (F (n-1) + F (n-2));}
- ¿Cuánto conocimiento de matemáticas se requiere para ser un programador?
- ¿Cómo funciona el proceso de eliminación en una lista vinculada? ¿Es solo eliminando la referencia del nodo? ¿Qué mecanismo se utiliza para disponer un nodo?
Pero eso es matemática. La forma más fácil de resolver esto con un programa es buscar de forma recursiva en el árbol de posibles secuencias de colores del sombrero aquellas que se ajusten al criterio. La búsqueda en profundidad es probablemente el camino a seguir.