26 votos

¿Qué hacen los operadores bit a bit en 3d?

La hipotética relación es $z = \mathrm{xor}\left(x,y\right)$ donde xor es cualquier operador bit a bit, tales como and, or, NAND, etc. Veo que estas operaciones pueden ser definidas para enteros trivialmente el uso de binario a decimal conversión.

De la misma manera, no podemos realizar bit a bit de la aritmética de los números reales? Por ejemplo, la siguiente es $\mathrm{xor}\left(1.5, 2.75\right)$:

    01.01
xor 10.11
---------
=   11.10

La respuesta es de 3.5.

¿Qué hacen los gráficos 3D de la binarios bit a bit los operadores parecen, y cuáles son algunas de las interesantes propiedades matemáticas? (por ejemplo, gradiente)

Por cierto, si se hace una gráfica de cualquiera de estos el uso de la Salvia, puedo ver el código? Yo no podía conseguir las operaciones bit a bit a trabajar de esta manera.

42voto

lowglider Puntos 562

Básicamente, se parece a esto:

3D plot of z = x xor y, producing a Sierpinski tetrahedron
(Imagen prestados en POV-Ray por el autor, utilizando una forma recursiva construido de malla, algunas zonas de luces y un montón de anti-aliasing.)

En la imagen, el cuadrado azul en el $x$-$y$ plano representa la unidad de la plaza de $[0,1]^2$, y el amarillo es la forma de la gráfica de $z = x \oplus y$ más de esta plaza, donde $\oplus$ denota bit a bit $\rm xor$.

Tenga en cuenta que este gráfico es discontinua en un subconjunto denso del plano. En la representación 3D de arriba, no se ha intentado, para retratar con precisión el valor preciso de $x \oplus y$ en los puntos de discontinuidad, y de hecho, no es generalmente definida de forma única. Esto es porque las discontinuidades que se producen en los puntos donde $x$ o $y$ es un diádica fracción, y por lo tanto tiene dos posibles binario expansiones (por ejemplo,$\frac12 = 0.100000\dots_2 = 0.011111\dots_2$).

Como puede verse en la imagen, el gráfico es auto-similar, en el sentido de que el pleno del gráfico en función del $[0,1]^2$ se compone de cuatro a escala reducida y traducido copias de sí mismo. De hecho, esta auto-similitud es evidente a partir de las propiedades de la $\oplus$ operación, a saber, que:

  • $\displaystyle \frac x2 \oplus \frac y2 = \frac{x \oplus y}2$, y
  • $\displaystyle x \oplus \left(y \oplus \frac12\right) = \left(x \oplus \frac12\right) \oplus y = (x \oplus y) \oplus \frac12$.

La primera propiedad implica que la gráfica de $x \oplus y$ sobre la parte inferior izquierda trimestre $[0,1/2]^2$ de los cuadrados de las $[0,1]^2$ es una copia reducida del pleno del gráfico, mientras que la segunda propiedad implica que los gráficos de $x \oplus y$ en el resto de los cuartos son idénticas a las del primer trimestre, excepto que en la parte inferior derecha y superior izquierda que se traducen por $\frac12$.

El resultado forma fractal es también conocido como el Tetrix o el tetraedro de Sierpinski, y es un 3D analógica de las 2 dimensiones del triángulo de Sierpinski, que también está estrechamente vinculado con el $\rm xor$ operación — una forma de construir aproximaciones del triángulo de Sierpinski es calcular los $2^n$ filas del triángulo de Pascal utilizando entero adición módulo $2$, que es equivalente a la lógica $\rm xor$.

Es sorprendente observar que esta totalmente en 3 dimensiones de forma fractal es de hecho (al menos aproximadamente, ignorando los molestos multivaluedness cuestiones en las discontinuidades) de la gráfica de una función en el $x$-$y$ plano. Sin embargo, cuando se ve desde arriba, cada uno de los cuatro sub-tetraedros precisamente cubre una cuarta parte de la unidad completa de la plaza (y cada uno de los 16 sub-sub-tetraedros cubre un cuarto de un cuarto, y así sucesivamente...).

14voto

hims056 Puntos 125

He aquí lo XOR parece. El negro es $z=0$; el Blanco es $z=1$. Los ejes x e y de ejecución de $[0,1]$.

XOR

He utilizado el (ingenuo) fórmula

$ x \oplus' y = \left(\lfloor 2^{20}x\rfloor \oplus \lfloor 2^{20}y\rfloor\right)2^{-20} $

Al menos con esta ingenua interpretación, la función no parecen continuos.

EDIT: el uso de análogos de las fórmulas, aquí están

Y: enter image description here

O: enter image description here

Todos tienen un aspecto bastante similar, pero el 0:1 relación de la diferencia es notable.

La operación XOR se ve como un fractal, en lugar de una adición de la parcela.

8voto

Milo Brandt Puntos 23147

Yo no puedo competir con k_g la imagen bastante, pero para una lista de algunas propiedades interesantes. En primer lugar, tenemos que $\oplus$ (que vamos a utilizar para denotar xor - o el "simétrica suma") bajo un dominio adecuado (como $(\mathbb R -\mathbb Q) \cup \{0\}$ para evitar problemas de falta de representaciones únicas, o, de manera más abstracta, infinitas secuencias de bits): $$x\oplus x = 0$$ $$0\oplus x = x$$ $$x \oplus y = y\oplus x$$ $$(x\oplus y)\oplus z =x\oplus (y\oplus z)$$ Hey, esos son como las mismas propiedades que la suma tiene! De manera abstracta, podemos vincular esta operación, además de a través del concepto de un (abelian) del grupo, que básicamente es una forma de estudiar "bien comportado" de las operaciones. Una cosa interesante aquí es que la manera de "deshacer", además de hacerlo de nuevo, es decir, si tenemos $x\oplus c$ y quieres encontrar $x$, entonces sólo tiene que encontrar como $x=(x\oplus c)\oplus c$, por lo que no necesita separar la operación de resta.

También tenemos algunas propiedades que explican la naturaleza fractal de k_g de la imagen (y por qué es discontinua en todas partes). En particular, obtenemos: $$(2x)\oplus (2y) = 2(x\oplus y)$$ que describe una especie de auto-similitud. Además de la utilización de las propiedades algebraicas de los de antes, por lo tanto, podemos ver que podíamos escribir un procedimiento para la generación de la trama como un fractal:

  • Comience con cualquier delimitada la función en $[0,1]\times[0,1]$. Llamar a esto $f_0$.
  • Definir $f_i$ copiando $f_0$ cuatro veces para hacer un cuadrado más grande, aumentando las dos entradas fuera de la diagonal por $1$ y, a continuación, escalando todo abajo por un factor de dos. Simbólicamente, obtenemos: $$f_{i+1}(x,y)=\begin{cases}f_i(\frac{x}2,\frac{y}2)&&\text{if }x < \frac{1}2,y<\frac{1}2\\f_i(\frac{x-1}2,\frac{y}2)+\frac{1}2&&\text{if }x > \frac{1}2,y<\frac{1}2\\f_i(\frac{x}2,\frac{y-1}2)&&\text{if }x < \frac{1}2,y>\frac{1}2\\f_i(\frac{x-1}2,\frac{y-1}2)+\frac{1}2&&\text{if }x > \frac{1}2,y>\frac{1}2\end{cases}$$ donde vemos que el $f_{i+1}$ está compuesto de $4$ copias de $f_i$. Como hacemos esto más y más, se obtiene una matriz que tipo de aspecto: $$f_0:\qquad\begin{matrix}0\end{matrix}$$ $$2f_1:\qquad\begin{matrix}0&&1\\1&& 0\end{matrix}$$ $$4f_2:\qquad\begin{matrix}0&&1&&2&&3\\1&& 0&&3&&2\\2&&3&&0&&1\\3&&2&&1&&0\end{matrix}$$ $$8f_3:\qquad\begin{matrix}0&&1&&2&&3&&4&&5&&6&&7\\1&&0&&3&&2&&5&&4&&7&&6\\2&&3&&0&&1&&6&&7&&4&&5\\3&&2&&1&&0&&7&&6&&5&&4\\4&&5&&6&&7&&0&&1&&2&&3\\5&&4&&7&&6&&1&&0&&3&&2\\6&&7&&4&&5&&2&&3&&0&&1\\7&&6&&5&&4&&3&&2&&1&&0\end{matrix}$$ Y podríamos seguir así a generar una gran tabla de $\oplus$, pero no. La cosa importante a tener en cuenta es cómo cada tabla está compuesta de desplazado copias de la última tabla, que conduce a un fractal de la naturaleza. Este método es básicamente el uso de algo llamado "de la iteración de punto fijo", para definir la $\oplus$ - si $f_i(x,y)$ ya estaban $x\oplus y$, $f_{i+1}$ no la cambio. Lo que ocurre es que el mapa de tomar $f_i\mapsto f_{i+1}$ se mueve siempre hacia $\oplus$ - en un sentido preciso, se trata de una "contracción del mapa", que significa que si cada valor de $f_{i}(x,y)$ está dentro de un margen de $d$$x\oplus y$, $f_{i+1}(x,y)$ está dentro de un margen de $\frac{d}2$ en todas partes - que proporciona precisos límites acerca de lo preciso que es este método.

Podemos, curiosamente, demostrar que $x\oplus y$ es continuo , excepto donde $x$ o $y$ es un diádica racional, es decir, que se puede expresar como $\frac{a}{2^b}$. Así, es continua en casi todas partes, pero discontinua en un denso conjunto (que es muy intuitivo). Para probar esto, elegir cualquier $\varepsilon>0$ y algunos $n$$2^{-n}<\varepsilon$. A continuación, podemos elegir algunos $\delta$ tal que ni el intervalo de $(x-\delta,x+\delta)$ ni $(y-\delta,y+\delta)$ contiene un número de la forma $\frac{a}{2^n}$, lo cual es posible si no es un diádica racional. Entonces, siempre que nos restringen $x'$ $y'$ dentro de estos intervalos, el primero $n$ dígitos (después del punto decimal) de $x'\oplus y'$ estará de acuerdo con los de $x\oplus y$, y así estar dentro de $2^{-n}<\varepsilon$ de cada uno de los otros. Esto demuestra la continuidad en los puntos y, como vemos en k_g de la imagen, cada una de esas líneas a través de la imagen se produce cuando $x$ o $y$ es un diádica racional (con más saltos extremos que ocurren al $b$ $x=\frac{a}{2^b}$ es pequeña).

Yo tendería a duda de que es diferenciable en cualquier punto excepto $0$, pero podría pensar en que antes de decir nada definitivo.

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