Este es un uso bastante directo de la programación lineal. Podría implementar un programa en PuLP, por ejemplo.
Las variables son binarias, y algo así como [math] X_ {a, b, c} [/ math], que significa “poner el valor [math] y_c [/ math] en la posición (a, b) en la matriz”. [math] y [/ math], por supuesto, es la lista de elementos que se pueden poner en la matriz.
Las restricciones son de la forma [math] \ sum_ {i = 0} ^ n \ sum_ {j = 0} ^ {n ^ 2} X_ {i, b, j} y_j = colsum_b [/ math] y de manera similar para el filas para asegurarse de que se alcanzan las sumas, así como [matemáticas] \ sum_ {i = 0} ^ n X_ {a, b, i} = 1 [/ matemáticas], para cada posición a, b para asegurarse de que cada spot en la matriz tiene exactamente un valor en ella.
- ¿Cuáles son algunas preguntas de entrevistas basadas en MapReduce?
- ¿Cuáles son algunos ejemplos de una entrevista semi-técnica para un programador?
- ¿Cómo me preparo para una ronda escrita de compañías como Amazon y Microsoft como nuevos?
- ¿Cuáles son algunos sitios web similares a CareerCup que ofrecen preguntas de entrevistas en varias compañías?
- ¿Cuál es el código de vestimenta en la entrevista de San Esteban y qué tipo de preguntas se hacen para recibir honores económicos?
La función objetivo puede ser simplemente 0, ya que cualquier solución que cumpla con las restricciones está bien.
En teoría, el tiempo de ejecución podría ser exponencial, y es posible que exista una solución de tiempo polinomial garantizado que no estoy viendo, pero esto se ejecutaría muy rápidamente en la práctica y sería muy fácil de implementar, por lo que es lo suficientemente bueno.