6 votos

Forma general para la solución de rompecabezas de matemáticas

Un rompecabezas de matemáticas de un amigo que está en un equipo de matemáticas:

El número irracional:$0.12345678910111213141516171819\dots$ tiene la cadena$314$ que aparece por primera vez en el lugar decimal$17$ decimal. ¿Cuándo comienza la primera aparición de$2012$?

La respuesta a este rompecabezas es$251$.

Estoy interesado en resolver un formulario general para cualquier número que ocurra. Hay muchos casos por lo que esta podría ser una función por partes.

2voto

Hagen von Eitzen Puntos 171160

Dado un $n$dígitos patrón, que claramente tienen un aspecto donde el número correspondiente en sí mismo se inserta en la cadena. Appearences en anteriores números son posibles si nos dividir el modelo en $d$ $n-d$ dígitos (el último, de no empezar con $0$): podemos encontrar nuestro patrón en el que el número formado por el derecho sub-patrón seguido por la izquierda patrón se produce (disminuir el derecho de sub-patrón por uno primero si la izquierda es un sub-patrón de todos los nueves). Así de 2012 también se pueden encontrar en $12\underline{ 20\, 12}21$ y en $2\underline{201\, 2}202$. Queda por comprobar $1\le m\le k<n$ si la interpretación de la primera $m$ dígitos como la cola de un $k$ número de dígitos conduce a un partido para todos los parciales y totales de los bloques así determinado. Aquí, con $k=1$, no hay ninguna coincidencia porque $2$ es seguido por $0$ en lugar de $3$. Con $k=2$, no hay ninguna coincidencia si $m=1$ porque la siguiente parte de la $01$ tiene un líder de $0$ e si $m=2$ ningún partido, porque $20$ es seguido por $12$ en lugar de $21$. Con $k=3$ tenemos las opciones de $\underline{201\,2}02$$x\underline{20\,12}y$, lo que conduce a $1\underline{20\,12}1$ y, por tanto, la primera aparición. Después de esto $O(n^2)$ ensayo y error de fase es relativamente fácil calcular el número de dígitos anteriores a la aparición.

0voto

Dukes Puntos 74

Usted puede fácilmente este programa, con el siguiente algoritmo:

Paso 1: Dividir un entero dado de n dígitos 2 dígitos-secuencias mediante la visualización de la primera $ 0 \leq i \leq n-1$ como la primera secuencia(puede ser una secuencia vacía) y la próxima $n-i$ dígitos a ser la segunda secuencia. De esta forma disponemos de n diferentes divisiones.

Paso 2: Verificar que se divide son 'buenos' se divide. Bueno divide se divide de tal manera que, no es un número entero que termina con una secuencia de 1 y un entero comenzando con la secuencia 2. En el 2012 caso, tenemos 4 posibles (diferentes) divisiones:

  • () , (2012)
  • (2), (012)
  • (20), (12)
  • (201), (2)

En este caso todos pero el segundo son buenas divisiones, porque no hay entero que comienza con los dígitos 012.

Paso 3: Después de filtrar, buscar a los que son buenos se divide y calcular cuando aparecen. Y la respuesta a la pregunta es el mínimo de todos estos valores. El cálculo de la apariencia se hace así:

Dado un split (ab)(cdefg), calcular el mínimo entero $d$ tales que d comienza con (cdefg) y termina con (ab+1). Si $a \neq g$ es el entero $cdefgab+1$ por ejemplo. Entonces el dígito donde esta entero ocurre es $9*1+90*2+900*3+900*4+9000*5+90000*6+(cdefgab+1-10^6)*7+1-2$ en nuestro caso. Las primeras 6 condiciones que existen porque nuestro número entero es mayor de 10*6, así que todos esos números enteros llegado antes que él. Luego hay $cdefgab+1-10^6$ enteros delante de él con 7 dígitos. Así que este entero debería comenzar en el siguiente lugar (+1 parte), pero desde que desee $abcdefg$, podemos restar 2 lugares, porque esta nueva entero comienza 2 lugares anteriores.

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