5 votos

Mediante aritmética básica, cómo ¿cuentan con restricciones las particiones de un conjunto?

En mis 9 años de edad, hija de la reciente prueba más de la multiplicación y de la agrupación que incluía preguntas sobre el número total de elementos en m grupos de n y de la conversión entre la multiplicación frases y modelos, una cuestión en particular se le preguntó cómo muchas maneras en que uno puede mostrar el 18 de sellos en cualquiera de los grupos de 3, 6 o 9.

Su respuesta fue que tres: 3 × 6, 6 × 3, y 9 × 2. He hecho tres salidas en falso de mi propia tratando de explicar a su manera de abordar el problema.

Método De Recuento De

El primer enfoque que se me vino a la mente fue lo que Marca Jason Dominus en las páginas 131-132 de su libro de Orden Superior Perl llamado el método de recuento, que se generaliza a administrar un generador de permutaciones.

¿Cuál es el patrón aquí? Resulta que de un patrón a otro es bastante simple:

  1. Escanear los números en el patrón de derecha a izquierda.
  2. Si usted legalmente puede incrementar el número de hacerlo, y detener.
  3. De lo contrario, cambie el número actual a 0 y continuar.
  4. Si usted se cae en el extremo izquierdo, a continuación, la secuencia fue la última.

Este algoritmo debe sonar familiar, porque has aprendido hace mucho tiempo. Es exactamente el mismo que el algoritmo que utiliza para contar.

Me sugirieron que se trate de una simple regla de usar el número más bajo disponible (de 3, 6 o 9) que todavía no se hayan utilizado en cada columna, pero pronto se dio cuenta de que iba a ser problemático.

3 3 3 3 3 3
3 3 3 3 6
3 3 3 6 3

El segundo y tercer particiones son las mismas, pero entrar en combinaciones frente a las permutaciones que parecía que iba a ser un poco más. Pensé que podríamos volver después a tirar duplicados. Pero también, hemos reutilizado 3 en la quinta columna, por lo que tuvimos que modificar la mecánica de la regla de usar el número más bajo disponible no utilizado todavía en ese punto (en el sentido de un árbol de decisión). Ella pareció entender el concepto y giró la manivela para un total de 13 filas.

Me tomó ventaja de un buen momento de enseñanza para sugerir que, cuando parece que el enfoque no está ganando mucho terreno, que es una señal de que es hora de dar un paso atrás y considerar un enfoque diferente.

Programación Dinámica

"Vamos a intentar a partir de un simple caso y de construcción. Lo que si hubo sólo tres sellos? Cuántos posible muestra podría no ser?"

Ella respondió correctamente.

"Ahora lo que si hubo seis sellos?"

Mirando hacia atrás en las dos primeras filas de la anterior tentativa y de nuestra discusión, entonces, ella vio que la respuesta fue de dos.

"Bueno, ¿y para los nueve sellos?"

Con su mesa, ella enumeró las tres posibilidades. A partir de allí, yo no estaba seguro de si ella iba a seguir con más facilidad el salto a los 12 o 18 siguiente. Hmm. Pero en su mesa, ella hizo un árbol con no explícitos los bordes para mostrar que el 3 y el 3 se combinan para hacer de 6, así que ...

Árbol De Recorrido

Anteriormente, ella prefiere comenzar con números más pequeños y trabajar su camino hacia arriba. Me sugirió la división de números a partir del 18 de dar

18
 / \
 9 9
 / \ / \
 6 3 6 3
 / \ / \
3 3 3 3

Comencé una discusión de la hoja y los nodos internos, y ella le preguntó si podía ir a jugar con su amigo a través de la calle.

La Fuerza Bruta

Tal vez la respuesta se deriva de la fuerza bruta pondría de manifiesto un evidente patrón. La simulación no determinismo con

import Control.Monad
import Data.List
import qualified Data.Set as S

groups = do
  a <- [9,6,3,0]
  b <- [9,6,3,0]
  c <- [9,6,3,0]
  d <- [9,6,3,0]
  e <- [9,6,3,0]
  f <- [9,6,3,0]
  guard $ a+b+c+d+e+f == 18
  return [a,b,c,d,e,f]

main =
  mapM_ print 

dado

$
  S.toList $

Hablando a través de cómo los grupos de 3 combinado para hacer grupos de 6 y, a continuación, el reagrupamiento de los tres grupos de 6 a 9, 3, 3, 3) parece un poco handwavy, y cómo puedo convencerla de que no habíamos omitido cualquier posible muestra? Asimismo, a partir de la programación dinámica, identificó tres formas de visualización de los nueve sellos, así que el doble que el y también agregar (6, 6, 6), pero que se parezca a producir desde el aire y también puede hacer que sus pregunto qué otras combinaciones que no habíamos considerado.

El uso de las herramientas matemáticas disponibles para un brillante pero joven estudiante, ¿cómo querido Padre hacer la caja hermética para ella?

2voto

antkam Puntos 106

En general, usted tiene una moneda combinación problema: ¿cómo puede \$18 total be made from coins of denominations \$3, \$6, \$9?

En mi experiencia (tengo 2 adolescentes...pero eran 9yo una vez :) ), una buena manera de enseñar a un 9yo sería simplemente hacer un triple bucle. Los bucles se pueden organizar en cualquier orden, pero de alguna manera se parece más fácil / más intuitiva si el bucle más externo cuenta el número de los más grandes de la moneda, etc.

For a = no. of  

Esto producirá el mismo resultado que @AndrewWoods respuesta.

Métodos más avanzados para resolver la moneda-la combinación de problema están disponibles, por ejemplo, https://stackoverflow.com/questions/1106929/how-to-find-all-combinations-of-coins-when-given-some-dollar-value y ver también https://en.wikipedia.org/wiki/Change-making_problem

Para su pregunta específica , de hecho, hay una muy cuidada alternativa de solución, pero tal vez demasiado avanzado para un 9yo. En primer lugar, convencerla de que se puede cambiar la escala de todo dividiendo por 3. Así que usted está tratando de hacer hasta un total de 6 con cualquier número de enteros positivos, donde cada entero positivo utilizado es $\le k=3$.

Sorprendentemente, este problema es equivalente a realizar un total de 6 utilizando exactamente $k=3$ enteros donde cada entero no negativo! Ver https://en.wikipedia.org/wiki/Partition_(number_theory)#Restricted_part_size_or_number_of_parts para un hermoso pictórica prueba usando Jóvenes/diagrama de Ferrers.

IME se necesitaría una vez avanzado 9yo para entender esta equivalencia. Tal vez usted tiene que esperar hasta la escuela secundaria. :D de todos Modos, una vez que usted está convencido, entonces la solución es fácil por que teniendo en cuenta lexicográfica ordenó trillizos, con un total de 6, es decir, 600, 510, 420, 411, 330, 321, 222. (Computacionalmente este es también un triple bucle, pero en comparación con el triple bucle de pseudo-código de arriba, esto es más fácil de generar, utilizando sólo la aritmética mental.) Si usted representa a cada triplete como $d_1 d_2 d_3$ , a continuación, cada una de las $d_i$ cuenta el número de enteros (en la partición original) cuyo valor $\ge i$. Alternativamente, si usted mapa de nuevo a mi temprana de la notación de $(a,b,c)$ entonces $d_3 = a, d_2 = a+b, d_1 = a+b+c$. Por lo tanto 600 representa la combinación de 6 a 1, y 222 representan la combinación de 2 a 3.

1voto

Andrew Woods Puntos 1579

Me sugirieron que se trate de una simple regla de usar el número más bajo disponible (de 3, 6 o 9) que todavía no se hayan utilizado en cada columna, pero pronto se dio cuenta de que iba a ser problemático.

Sugerencias:

  1. Procediendo de izquierda a derecha, restar el mayor número disponible.
  2. No creo que en términos de las columnas. En cada fila, subrayado el primer número que se vieron obligados a elegir. En la fila siguiente, reemplazar el número delante de ella con el siguiente número más alto disponible.

$$\begin{array}{lllllll}9&+&9.\\9&+&6&+&\underline{3}\\9&+&\underline{3}&+&3&+&3\\6&+&6&+&6.\\6&+&6&+&\underline{3}&+&3\\&\vdots&&\vdots&&\vdots\end{array}$$

En la primera fila, el último número elegido fue de 9, por lo que en el siguiente se sustituya por 6.

En la segunda fila, el último número elegido fue de 6, por lo que en el siguiente se sustituya por 3.

En la tercera fila, el último número elegido fue de 9, por lo que en el siguiente se sustituya por 6... etc.

No puedo decir si ella se siente este procedimiento para ser "hermético", pero el hecho de que todas las particiones se presentan con sus piezas en el orden significa que, si otra partición existe, es evidente que debe encajar en algún lugar entre dos de las filas de la lista.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X