4 votos

Conversión de la base: ¿Cómo convertir entre base decimal y base compleja?

Mi motivación para esta pregunta es explorar más allá de las ideas en Proyecto de problema Euler 508 . En ese problema, es útil saber cómo convertir entre un número decimal y un número en base $(-1+i)$ . Por ejemplo, el Proyecto Euler enumera las siguientes conversiones:

$$ (0+0i)_{10} = (0)_{-1+i} \\ (-5+0i)_{10} = (11001101)_{-1+i} \\ (8+0i)_{10} = (111000000)_{-1+i} \\ (24-11i)_{10} = (110010110011)_{-1+i} \\ (11+24i)_{10} = (111010110001101)_{-1+i} $$

Mis preguntas (en orden de generalidad creciente):

  • Cómo convertir de decimal real a base $-1+i$ ?
  • Cómo convertir de decimal imaginario a base $-1+i$ ?
  • Cómo convertir de enteros gaussianos (de la forma $a+bi$ donde $a,b$ están cada uno en base-10) a base $-1+i$ ?
  • Cómo convertir de enteros gaussianos (de la forma $a+bi$ donde $a,b$ están cada uno en base-10) a base $c+di$ (donde $c,d$ también son de base 10)?

Busco los algoritmos más básicos para entender simplemente cómo son posibles estas conversiones. Si el algoritmo no es fácil de describir, por favor, ilustre el proceso(s) con algunos ejemplos fáciles. Gracias.


Edición: No sé por qué, pero algún comentario/respuesta fue eliminado cuando contenía el enlace a este útil documento .

0 votos

Vi el enlace como parte de una respuesta que fue borrada por el que la publicó. Por favor, indíqueme cómo puedo ayudarle a mejorar mi respuesta a continuación. (No he utilizado el documento mencionado. Traté de averiguar mi algoritmo por mi cuenta).

4voto

zoli Puntos 7595

SUGERENCIA:

Consideremos el caso de los enteros gaussianos de la forma $n+im$ y que la base sea $-1+i$ .

En general, si se tiene un base y un número para expandirse en esa base entonces el dividirá el número repetidamente por la base y tomará nota de los restos. Afirmo que en el caso de la base $-1+i$ el resto es $0$ o $1$ si el número a expandir es un entero gaussiano.

Entonces, tomemos un entero gaussiano $n+im$ y dividirlo por la base elegida:

$$\frac{n+im}{-1+i}=\frac{(n+im)(-1-i)}{2}=\frac{m-n}{2}-i\frac{n+m}{2},$$ donde el nominador y el denominador se han multiplicado por $-1-i$ (el complejo conjugado de la base).

Si ambos $n$ y $m$ son pares o ambos son Impares entonces $m-n$ y $m+n$ ambos son pares y el resultado de la división es un entero gaussiano, $$\frac{m-n}{2}-i\frac{n+m}{2}$$

y el resto es $0$ .

Si sólo uno de $n$ o $m$ es par (el otro es impar) entonces se puede considerar la siguiente versión del cociente:

$$\frac{n+im}{-1+i}=\frac{m-n+1}{2}-i\frac{n+m-1}{2}-\frac{1}{2}(1+i).$$ En este caso el resultado de la división es el siguiente entero gaussiano:

$$\frac{m-n+1}{2}-i\frac{n+m-1}{2}$$ y el resto es $1$ . En efecto, $$\big(-1+i\big)\big( \frac{m-n+1}{2}-i\frac{n+m-1}{2} \big)=n+im-1.$$

Se puede repetir esta receta con los enteros gaussianos resultantes hasta que, como resultado de las repetidas divisiones por $2$ el número original desaparece y la secuencia de los restos se mantiene...

Ilustremos el algoritmo con el ejemplo dado en el OP: $$24-i11.$$

Si $$(m-n)-i(n+m)=(24-(-11))-i(24+(-11)=-35-i13$$

(Véase el segundo par de columnas del cuadro siguiente) era divisible por $2$ entonces el tercer par de columnas contendría lo mismo sin ninguna modificación y el resto sería cero (Ver la columna llamada Remanente). Como $-35-i13$ no es divisible por dos, hay una modificación según la fórmula $$(m-n+1)-i(n+m-1)=-34-i12$$ y el resto es $1$ . La primera flecha roja señala el resultado de la primera división. (La división por $2$ se realiza ahora). A continuación, se repetirá el paso de procedimiento detallado anteriormente hasta que el valor correspondiente en el tercer par de columnas se haya convertido en $0+i0$ .

$ \color{white}{bbi}$

Si se multiplican los restos por las diferentes potencias de la base $i-1$ y se suman los resultados, entonces el resultado será el número complejo que se iba a expandir:

$ \color{white}{bbbbbbbbb}$

Por último, tenemos $$(24-i11)_{10} =(110010110011)_{-1+i}.$$

Espero que esta pista de arriba ayude al OP a resolver los otros problemas. No es imposible, ya que el esqueleto del método es el mismo que el que utilizamos en el caso de las conversiones de base más simples en "la vida cotidiana".

0 votos

¡Una respuesta simplemente fantástica! Gracias por su visión y por una presentación clara del proceso.

1voto

user115188 Puntos 1

El traslado/préstamo en base $-1+i$ es $\{1,2,2\}$ (todos del mismo signo). Para convertir un número decimal $N$ en la base $-1+i$ empezar con "dígitos" $...,0,0,0,N$ y aplicar el carry/borrow al dígito más a la derecha que no es $0$ o $1$ hasta que todos los dígitos estén dentro de dicho rango. Si la entrada es un número complejo, se inicializa el último dígito con la suma de sus partes real e imaginaria, y el penúltimo dígito con su parte imaginaria, es decir $...,0,0,Im,Re+Im$ .

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