12 votos

¿Hay una manera de determinar cuántos dígitos contiene una potencia de 2?

¿Hay una forma directa para determinar cuántos dígitos una potencia de 2 que contienen sin realizar realmente la multiplicación?

Una estimación ayudaría también si no hay solución absoluta.

Editar: en base decimal y binario.

24voto

Dan Walker Puntos 3466

Si usted resuelve $x$ la ecuación $$2^{n}=10^{x}$$ you get the exponent of $10$ $$x=\frac{n\ln 2}{ \ln 10}\approx 0.30103 n\qquad \text{(ver el comentario)}$$

Respuesta de la edición. En binario base desde

$$2^{n}=1\cdot 2^{n}+0\cdot 2^{n-1}+\cdots +0\cdot 2^{2}+0\cdot 2^{1}+0\cdot 2^{0},$$

tenemos $n+1$ bits

$$\left( 2^{n}\right) _{2}=\underset{n+1\text{ bits}}{\underbrace{1\overset{n\text{ 0's}}{\overbrace{0\ldots 000}}}}.$$

Comentario. El número de $x$ nunca es un entero porque $2^{n}$ sólo puede terminar en $2,4,6$ o $8$. Así que, como ya se ha comentado por Random832, el número de dígitos en base decimal es

$$\left\lfloor 1+\frac{n\ln 2}{\ln 10}\right\rfloor =1+\left\lfloor n\,\log _{10}2\right\rfloor ,$$

cual es la secuencia de A034887 en OEIS (Gost del comentario).

15voto

notpeter Puntos 588

Hay una estimación de gran utilidad en Ciencias de la computación: $2^{10k} \approx 10^{3k}. $ en particular siempre es apenas un poco más grande, por lo que $2^{10}$ tiene cuatro dígitos, $2^{20}$ tiene siete y así sucesivamente. No estoy seguro de cómo encontrar atajos para longitudes no un múltiplo de 3.

1voto

Lance Puntos 11

No estoy seguro de si hay una prueba de esto, pero hay un patrón repetitivo, que parece ser cierto para tan grande como puedo comprobar.

Como se mencionó en otra respuesta, una $2^{10}$, los incrementos de la base 10 el número de tres dígitos.

Parece que dentro de cada una de las $2^{10}$ hay un patrón en el que cada base de 10 dígitos que se incrementará en cada una de estas potencias de dos: $2^{4} \cdot 2^{3} \cdot 2^{3}$.

Uno podría hacer un muy eficiente la función para calcular el número de dígitos que el uso de este patrón. De nuevo, no sabe por cuánto tiempo este patrón es cierto, pero el número es bastante grande.

0voto

Jithesh Kt Puntos 31

IntegerPart(log(x)+1) donde x es alguna ecuación dará el número de dígitos a la izquierda de la decimal. Es lo que utilizo de todas maneras :)

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