El título ya es la pregunta completa, pero me gustaría añadir algunos detalles para dejar claro lo que quiero decir.
A $n$ -La cadena de bits es un elemento de $\{0,1\}^n$ . Todas las posibles cadenas de 3 bits son:
- 0: 000
- 1: 001
- 2: 010
- 3: 011
- 4: 100
- 5: 101
- 6: 110
- 7: 111
Como se pueden codificar como números binarios, hay $2^n$ $n$ -cadenas de bits. Si quiero como máximo $m=1$ subsecuentes 0s, las secuencias permitidas son:
- 2: 010
- 3: 011
- 5: 101
- 6: 110
- 7: 111
Por lo tanto, para $n=3, m=1$ la respuesta es 5.
¿Cuál es la respuesta a la arbitrariedad? $n \in \mathbb{N}$ y $m \in \{0, \dots, n\}$ ? ¿Cuál es la respuesta para $n=30, m=4$ ?
Antecedentes de la cuestión
Este es el fondo de mi pregunta. No es necesario entenderlo / responderlo.
He desarrollado una aplicación de reconocimiento de símbolos (ver http://write-math.com ) y ahora estoy pensando en diferentes posibilidades para ampliarlo al reconocimiento de fórmulas. Una parte del reconocimiento de fórmulas consiste en reconocer los símbolos individuales.
Obtengo datos en línea, lo que significa que obtengo la información de cómo se escribe el símbolo (en contraste con los datos fuera de línea, donde sólo tienes píxeles). Mis datos son una lista de trazos, donde cada trazo es un punto. Un punto tiene coordenadas x/y y un tiempo:
[[(x=12, y=21, t=0), (x=7, y=13, t=3), ((x=7, y= 21, t=5), ...],
[(x=0, y=0, t=6)],
[...], ...]
Ahora sé que la gente siempre segmenta perfectamente sus símbolos. Eso significa que un símbolo puede tener varios trazos, pero un trazo siempre pertenece exactamente a un símbolo. Como tengo un reconocedor de símbolos que funciona bastante bien, sería posible utilizarlo simplemente para reconocer múltiples símbolos probando todas las segmentaciones posibles. Esto se puede modelar tomando un $n$ -cadena de bits para $n+1$ golpes. Si un bit determinado es 0, los trazos vecinos están conectados:
stroke1 stroke2 stroke3
0 1
Stroke1 and stroke2 are connected, but separated from stroke3
Hence the first symbol has the first 2 strokes,
the second symbol has the last stroke
Sé que los símbolos con más de 4 golpes son muy raros. Tan raros que no utilizo ningún trazo después del cuarto para reconocerlos. Por lo tanto, no necesito comprobar $2^n$ segmentación, pero menos. Mi pregunta es cuántas segmentaciones tengo que comprobar.