4 votos

¿Qué operaciones se pueden realizar en tres variables $x$ $y$ y $z$ y producen una única suma?

Estoy teniendo un problema de programación, pero me parece que sería más pertinente aquí. Tengo tres variables únicas, $x$, $y$, y $z$. Qué operaciones puedo realizar en estas variables para producir un único valor? Hay enfoques que puedo tomar?

Gracias!

EDIT: Para ser más específicos, quiero un poco de la función $f(x, y, z)$ que produce un resultado único para cada conjunto de entradas (suponiendo que en la singularidad de entradas, $1$, $2$, $3$ no necesita salida de algo diferente a lo que $3$, $2$, $1$). Me doy cuenta de que una generalizada caso de que esto probablemente no sea posible, pero definitivamente, me gustaría ser capaz de cooptar a soluciones similares

6voto

mrnovice Puntos 13

$f(x,y,z) = x\sqrt{2} + y\sqrt{5} + z\sqrt{7}$

Esta función podría aumentar en un orden de magnitud similar a sus entradas. Además, es posible demostrar que para $x,y,z \in \mathbb{Z}, f(x,y,z)$ debe ser único $\forall x,y,z$.

Edit: Prueba:

Supongamos por contradicción que $\exists x_{1},y_{1},z_{1},x_{2},y_{2},z_{2} \in \mathbb{Z}$:

$f(x_{1},y_{1},z_{1}) = f(x_{2},y_{2},z_{2})$ , con al menos uno de los siguientes se cumplen: $x_{1} \neq x_{2}, y_{1} \neq y_{2} , z_{1} \neq z_{2}$

Luego tenemos a $x_{1}\sqrt{2} + y_{1}\sqrt{5} + z_{1}\sqrt{7} = x_{2}\sqrt{2} + y_{2}\sqrt{5} + z_{2}\sqrt{7}$

$\Rightarrow (x_{1} - x_{2})\sqrt{2} + (y_{1} - y_{2})\sqrt{5} + (z_{1} - z_{2})\sqrt{7} = 0$

En el caso de que $x_{1} = x_{2}$$y_{1} \neq y_{2}$$z_{1} \neq z_{2}$:

$\frac{\sqrt{5}}{\sqrt{7}} = \frac{z_{2} - z_{1}}{y_{1}-y_{2}}$

Esto implicaría que $\frac{\sqrt{5}}{\sqrt{7}} \in \mathbb{Q}$, lo que conduce a una contradicción (distintos irracional dividido por distintas irracional también debe ser irracional - fácil de demostrar)

Una otra prueba similar se aplica para el caso en que $y_{1} = y_{2}, x_{1} \neq x_{2}$ $z_{1} \neq z_{2}$ y en el caso de al $z_{1} = z_{2}, x_{1} \neq x_{2}$ $y_{1} \neq y_{2}$

Si tenemos $x_{1} = x_{2}$$y_{1} = y_{2}$, entonces obtenemos $z_{1} = z_{2}$ lo cual es una contradicción. Por lo tanto hemos demostrado las siguientes condiciones:

$x_{1} \neq x_{2}, y_{1} \neq y_{2} , z_{1} \neq z_{2}$

deje $a = x_{1} - x_{2}, b = -(y_{1}-y_{2}), c = -(z_{1} - z_{2})$

Luego tenemos a $a\sqrt{2} = b\sqrt{5} + c\sqrt{7}$

$\Rightarrow \sqrt{2} = \frac{b\sqrt{5} + c\sqrt{7}}{a}$

deje $b_{1} = \frac{b}{a}, c_{1} = \frac{c}{a}$

$\Rightarrow b_{1}, c_{1} \in \mathbb{R}$

$2 = (b_{1}\sqrt{5} + c_{1}\sqrt{7})^{2}$

$\sqrt{35} = 2 - 5b_{1}^{2} - 7c_{1}^{2}$

$\Rightarrow \sqrt{35} \in \mathbb{Q}$ lo cual es una contradicción.

Esto implica que $\forall x,y,z \in \mathbb{Z}, f(x,y,z)$ es único.

2voto

dxiv Puntos 1639

Thye puede ser coaccionado para convertirse en números enteros

Si las entradas pueden ser coaccionadas más para ser números enteros no negativos en los rangos conocidos $0 \le x \lt a\,$, $0 \le y \lt b\,$, $0 \le z \lt c\,$, entonces la función $f(x,y,z) = x + a \,y + ab \,z\,$ puede ser fácilmente demostrado ser inyectiva, y su inverso es fácilmente calculatable $x = f \;\%\; a\,$, $y = (f/a) \;\%\; b\,$, $z=f/(ab)\,$ donde '$/$' denota División de entero (con truncamiento hacia $0$) y '$\%$' es el modulo operador.

1voto

Sentinel135 Puntos 196

mmovice es con su solución de la muestra. La única cuestión que surgirá es cuando los valores son 0. Una buena manera de hacer esto es que es similar. Que $f: \mathbb R^3 \to \mathbb R$ tal que los valores de $(x,y,z)$ se alternan con respecto a su valor decimal. como un ejemplo $(10,214,3)= 020,110,043$ Esto elimina los problemas con valores cero.

1voto

Scott McClung Puntos 171

Si estás trabajando con enteros no negativos con "agradable" límites para mantener los números de ser demasiado grande (o permitir que se unbounded el uso arbitrario de tamaño entero a escribir), entonces una forma de manejarlo, que mantiene el total de los tamaños de los números relativamente limitados (para tres números pequeños, todavía produce un (relativamente) pequeño número) es fusileros las representaciones binarias. Es decir, si se quería 2,5,9, entonces se puede escribir en binario (con la misma longitud):

0010, 0101, 1001

A continuación, habría que tomar dígitos sucesivamente... $$ \begin{pmatrix}0 & 0 & 1 & 0\\0 & 1 & 0 & 1\\1 & 0 & 0 & 1\end{pmatrix}^T = \begin{pmatrix}0 & 0 & 1\\0 & 1 & 0\\1 & 0 & 0\\0 & 1 & 1\end{pmatrix} $$ Estoy que lo representan como el anterior por su facilidad de visualización. Ahora escribe como un número único:

$001010100011 = 675$

Lo bueno de esto es que todos los triples se asigna únicamente a un número entero, y todos los números enteros se asignan a, es decir, dado cualquier entero, hay un triple de mapas. También, el aumento de cualquier valor en el triple aumentará el número resultante (aunque no será un aumento lineal).

La desventaja es que va a tomar algún código para que funcione en la mayoría de los idiomas (no sé que sería moderadamente fácil de Julia, donde se podía convertir a cadena binaria usando bin con algo de relleno y, a continuación, combinar las cuerdas con un poco de fácil código y, a continuación, analizar de nuevo a entero), y probablemente no será el código rápido (a pesar de que usted podría ser capaz de implementar utilizando algunos lazos con la aritmética básica/operaciones a nivel de bit).

Tenga en cuenta que no es necesario que sea binario - usted puede hacer las mismas operaciones en decimales, por lo $(13, 51, 9) \to 150319$

-1voto

Frederic Puntos 952

Usted puede utilizar el concepto de expression.for binario ejemplo, va (1,2,3) a la expresión binaria de 123.

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