29 votos

Encontrar un número entero tal que al cuadrado, los primeros 4 dígitos son ' 6666 '.

El título lo dice todo. Simplemente estoy buscando una prueba a mi respuesta de 2582. He utilizado un oscuro el método que he percibido daría la respuesta, pero no tengo idea de por qué funciona.

Yo primero se calcula el cuadrado del valor máximo de la raíz cuadrada de 6666. Que no trabajo por lo que mi intuición me dijo que me repita este proceso con 66660 en lugar de 6666. Que aún no funciona. Me llevó hasta la iteración con la sustitución de 6666 con 6666000 para encontrar que la plaza de el techo de la función de la raíz cuadrada de 6666000 es 6666724, el entero responsables 2582.

Por favor alguien puede ayudar? He encontrado la respuesta pero quiero una más del razonamiento matemático a mi respuesta.

68voto

HappyEngineer Puntos 111

Necesitan $6666\times 10^k \leq x^2<6667\times 10^k$

Si $k=2n$ es par, entonces esto significa que:

$De$10^{n}\sqrt{6666}\leq x\leq 10^{n}\sqrt{6667}$$

$\sqrt{6666}\approx 81.646$ y $\sqrt{6667}\approx 81.652$, así que podemos ver que fr $n=1$, $x=8165$ funcionará.

Si $k=2n+1$ es impar, entonces usted necesita:

$De$10^{n}\sqrt{66660}\leq x\leq 10^{n}\sqrt{66670}$$

$\sqrt{66660}\approx 258.186$ y $\sqrt{66670}\approx 258.205$ nd tenemos para $n=1$ que $x=2582$.

Si quieres empezar con $D$, tenga en cuenta que $\sqrt{D+1}-\sqrt{D}=\frac{1}{\sqrt{D+1}+\sqrt{D}} > \frac{1}{\sqrt{4D+2}}$. Por lo que al menos, si $k>\log_{10}(4D+2))$ entonces $10^{k/2}\sqrt{D+1}-10^{k/2}\sqrt{D}>1$ por lo que debe ser un entero $x$ tales que:

$De$10^{k/2}\sqrt{D}\leq x<10^{k/2}\sqrt{D+1}$$ Esta técnica de trabajo para los cubos, demasiado, pero usted tendría que separar la cuestión en tres de los casos, $k=3n,k=3n+1,k=3n+2$. Por $m$th poderes, se considerar $m$ de los casos.

Por ejemplo, el entero más pequeño tal que $x^7$ comienza con $6666$ es $x=4888$.

7voto

cr001 Puntos 6563

Teóricamente, son esencialmente mediante la formula $\sqrt{100}=10\sqrt{x}$.

Su iteraciones son, esencialmente, en primer lugar, calcular $\sqrt{6666}=81.6455...$. Se multiplican las exponenciales de $10$ para obtener números más grandes, y al parecer el segundo sólo funciona: $8165^2=66667225$.

Hay dos tipos de soluciones: los números a partir de $\sqrt{6666}=81.6455...$ y los números a partir de $\sqrt{66660}=258.1859...$ y su respuesta es el segundo caso. La "tercera" caso sería números a partir de $\sqrt{666600}$, que es el mismo que el primer caso.

5voto

Paul Evans Puntos 141

Soy un programador y un matemático (muy amateur). Escribí este python 3 programa antes de buscar las respuestas solo por diversión (yo mano calcula que la respuesta debe empezar con 81 o 25):

from math import sqrt

def f(n):
    for d in range(10):
        for i in range(10**d):
            x = n * 10**d + i
            y = x * x
            if str(y)[0:4] == '6666':
                print (x, y)
                return

if __name__ == '__main__':
    f(81)
    f(25)

Imprime:

2582 6666724
8165 66667225

y funciona bien en una décima de segundo en mi portátil.

2voto

Hurkyl Puntos 57397

Deje que $\lceil x \rceil$ ser el techo de la función aplicada a $x$. Por lo tanto, $\lceil x \rceil = x + \varepsilon$ $0 \leq \varepsilon < 1$.

$$\lceil \sqrt{x} \rceil^2 = (\sqrt{x} + \epsilon)^2 = x + 2 \sqrt{x} \varepsilon + \varepsilon^2$$

Su método de aproximación de la raíz cuadrada con el techo de la función, por tanto, da algo de cuya plaza está relativamente cerca de la original de la serie; el error es menor que $2 \sqrt{x} + 1$, que es mucho menor que $x$.

Usted está usando $x = 6666 \cdot 10^n$; en consecuencia, y usted gana tan pronto como el error es de menos de $10^n$. Podemos garantizar esto mediante la búsqueda de una $n$ que

$$ 2 \sqrt{6666 \cdot 10^n} + 1 < 10^n $$

En realidad podríamos resolver esto, como es cuadrática en $\sqrt{10^n}$, pero es mucho más fácil usar el método de prueba y error; $n=5$ es el valor más pequeño donde esto es cierto, y en consecuencia, debemos tener

$$ \lceil \sqrt{666600000} \rceil^2 = 6666xxxxx $$

donde $x$'s en desconocidos dígitos (aunque se puede calcular).

Resulta que, por 'casualidad', esto funciona con $n$ tan bajo como $n=3$, como el correspondiente $\varepsilon$ es relativamente pequeño.

1voto

Stephen Denne Puntos 218

Aquí es otra solución de programa de ordenador, pero mucho más rápido que sysreq responder.

import math

for k in range(8): # arbitrary upper limit
    # Find bounds on the sqrt of integers starting with 6666
    lower_bound = math.sqrt(6666 * 10**k)
    upper_bound = math.sqrt(6667 * 10**k)
    # Print any integers within this range
    n = math.ceil(lower_bound)
    while n <= upper_bound:
        print(n)
        n += 1

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