¿Hay algún número que el binario no pueda producir?

En esencia, la representación binaria es equivalente a la representación decimal, excepto por el cambio de base. Por lo tanto, todo lo que se puede expresar en forma decimal también se puede expresar en forma binaria.

Los números imaginarios no pueden expresarse mediante un número simple, ni en representación decimal o binaria, sino que requieren dos componentes, por ejemplo, representados por un vector o una expresión usando la entidad “i” en la expresión. Esto no tiene nada que ver con la base.

Puede indicar que 1/5 se puede representar exactamente con precisión limitada (un decimal) en base 10 pero no en base 2. Esto se debe a que 5 es un factor de 10. 1/3 no se puede representar exactamente con precisión finita en cualquiera de las bases. A veces me pregunto por qué no hemos elegido 6 como base, los dos primos más pequeños. Podríamos contar hasta 5 en una mano y usar la siguiente mano para “seis”, lo que nos permite contar hasta 35 antes de que se nos acaben los dedos.

Los números irracionales no pueden representarse en un número finito de dígitos en ninguna base (natural), por lo tanto, deben manejarse simbólicamente.

Algunas computadoras tempranas (p. Ej., ENIAC) usaban representación decimal internamente, no porque fuera de ninguna manera mejor sino que para un ojo humano era más fácil de interpretar. Los depuradores no eran tan buenos ;—).

Al final, se puede programar una computadora para representar cualquier número limitado solo por la capacidad de almacenamiento. Hay muchas bibliotecas que representan números enteros grandes y números racionales exactamente, y también hay bibliotecas que pueden representar números irracionales “exactamente” mediante funciones que calculan el resultado de manera perezosa (es decir, dígito por dígito a pedido). No estoy seguro de cuán eficiente es esta representación, pero si realmente la necesita, puede obtenerla.

Sí.

  • Números irracionales Son números que no se pueden escribir como una fracción (es decir, una ración de números) y, cuando se escriben como números decimales, no se repiten ni terminan. Pi es uno de esos ejemplos.
  • Números imaginarios Como se indicó en otra respuesta, los valores como la raíz cuadrada de un número negativo no se pueden representar en forma binaria. Se necesita un término separado que indique la unidad imaginaria.
  • Infinito, infinito negativo Ambos son números, pero ninguno es real o contable y, por lo tanto, no se pueden representar en forma binaria.

Bueno, siempre tendrás un número limitado de bits para mantisa y exponente. El número racional 1/10, que es 0.1 en decimal, no se puede representar exactamente en binario. Es muy parecido a que no puede representar exactamente 1/3 como un número decimal de coma flotante. Se cansará de escribir todos esos 3 en algún momento, o se quedará sin papel o tinta. Quiero decir, todo papel y tinta en este planeta.

Un teorema interesante que vi una vez, tal vez en Vademecum van de wiskunde (holandés): Parece que en cualquier base integral> = 2, si tiene un número racional p / q desea escribir como una fracción, entonces si hay un grupo repetitivo de dígitos (si el número no termina), este grupo tiene como máximo q-1 dígitos.

Entonces toma 1/7 en decimal: 0. 142835 142835 142835

El grupo repetitivo es de 6 dígitos, o 7-1.

Por lo tanto, el grupo que se repite para 1/10 en binario no puede tener más de 9 dígitos (binarios).

Solo los matemáticos teóricos necesitan números exactos. Para todos los demás: no podemos representar todos los números exactamente, pero podemos elegir cuántos dígitos queremos tener y así aproximar cualquier número a casi cualquier precisión. Para la mayoría de las aplicaciones, no veo la necesidad de más de 20 dígitos, pero 200 o 2000 dígitos no es un problema en las computadoras modernas. Solo no tendrá soporte de hardware y será más lento.

Eche un vistazo a Python si necesita muchos dígitos.

Si, hay muchos. Por ejemplo, [math] i = \ sqrt {-1} [/ math] es un número que no tiene expresión binaria. Por otro lado, si el interlocutor se refiere únicamente a números reales, cualquier número tiene una expresión binaria.

¡Sí hay! De hecho, hay innumerables infinitos más que se pueden implementar. Ningún número real puede expresarse como número binario, ya que tendríamos que almacenar infinitos dígitos independientemente de la base. Los números de punto flotante son solo un truco inteligente que ofrece una compensación justa en precisión al aproximar números reales.

En realidad no, el único que no puede producir es infinito, el infinito no puede representarse técnicamente en ninguna base.

More Interesting

Cómo hacer que el software de mi sitio web lea un correo electrónico, capture la ID en el asunto y actúe en función de esa ID

¿Cuál es la probabilidad de que un determinado número binario de 6 bits divida perfectamente un binario aleatorio de 15 bits?

Cómo crear mi propia función de hash para usar en una tabla de búsqueda

¿Qué algoritmos usa Bing para clasificar los resultados de búsqueda? ¿La patente de Google les impide usar PageRank? Análisis de enlaces en general?

¿Qué es un problema algorítmico que es fácil de resolver en Haskell pero difícil de resolver en Python?

¿Qué libro sobre algoritmos es una lectura obligada para un programador?

¿Dónde puedo aprender los algoritmos de C ++ en línea?

¿Cómo podemos lograr O (nlogn) / O (n) para ThePalindrome (Topcoder SRM 427)?

Cómo probar la corrección del problema de cambio de moneda usando DP y poda

¿Qué estructura de datos debo usar si estoy diseñando un algoritmo que clasifica las páginas por relevancia de acuerdo con la cantidad de veces que se ven?

¿Cómo es posible que el hashing sea imposible de revertir? ¿Hay alguna prueba?

¿A qué año de pregrado está destinado MIT 6.006 Introducción a Algoritmos (primer año, segundo año, etc.)?

¿Cuáles son ejemplos de la secuencia de Fibonacci en el campo de la ciencia y las artes liberales (economía, sociología, incluso historia, etc.)?

¿Cuál es la forma más rápida de invertir una cadena con más de 10000 caracteres?

¿Cuál se debe aprender primero, estructuras de datos o algoritmos?