4 votos

Simplificación de anidado módulo de operaciones.

Puedo simplificar esta fórmula a utilizar solamente un módulo de operación?

$$(x + (y \text{ mod } z)) \text{ mod }z$$

De forma intuitiva simplifica así:

$$(x + y) \text{ mod } z$$

Esto parece hacer lo mismo que el original. Sin embargo, no sé por qué funciona ni si esto es lo correcto.

5voto

PMar Puntos 62

Matemáticamente, esto es correcto. Vamos $y$ = $mz+y'$, con $0 {\le}y'{\lt}z$. Entonces $x+y$ = $x+y'+mz$, por lo $x+y$ $x+y'$ claramente tienen el mismo resto modulo $z$.

Sin embargo, si se va a realizar este cálculo en un equipo, tenga cuidado: Si $x$ $y$ son de tipo entero (con o sin signo), es posible que la adición de $x$ $y$desborda mientras que la adición de $x$ $y'$no, lo cual puede afectar el resultado.

2voto

Zonko Puntos 80

Usted está hecho a la derecha. Definir $x, y$:
$x,y=nz+a$ $0\leq a<z$ Enchufe en la ecuación original: $$(n_xz+a_x)+(n_yz+a_y)\mod{z}$$ Añadir ambos términos: $$n_{sum}z+a_x+a_y\mod{z}$$ Primer plazo de la cancela: $$a_x+a_y\mod{z}$$ El mismo, obviamente, sucede si queremos cancelar $n_yz$ primer: $$(n_xz+a_x)+(n_yz+a_y\mod{z})\mod{z}$$ $$=n_xz+a_x+a_y\mod{z}$$ $$=a_x+a_y\mod{z}$$

1voto

Kanwaljit Singh Puntos 1170

Sí funciona.

(x + (y % z)) % z

= x % z + y % z % z .......(1)

Tomando modulo dos veces o una vez en cualquier número que no hace el cambio.

Así y % z % z = y % z

A partir de (1),

= x % z + y % z

= (x + y) % z

1voto

Ingix Puntos 91

La manera de escribir esto, parece que en realidad están hablando de que el operador % en algunos c como lenguaje de programación. En ese caso, se advierte que si los números negativos están involucrados, el operador % puede producir resultados negativos (ver https://en.wikipedia.org/wiki/Modulo_operation para más detalles). Con resultados negativos, los dos términos se pueden producir distintos valores que son el mismo mod z.

Por ejemplo, mi Visual Studio en C# dice

$(3 + (-5 \% 3)) \% 3 = 1$, pero $ (3 + (-5)) \% 3 = -2$.

De curso $1 \equiv -2 \pmod 3$, pero si se compara los valores en su programa, a continuación, van a comparar diferentes.

1voto

Dario Gutierrez Puntos 122

$$(x + (y \text{ mod } z)) \text{ mod }z = $$ $(y \text{ mod } z) \implies y=qz + r \implies r = y - qz = (y \text{ mod } z)$ $$(x + (y - qz)) \text{ mod }z =$$ $$ (x + y - qz) \text{ mod }z =$$ $(x + y - qz) \text{ mod }z \implies (x + y - qz) = nz + p \implies p= (x + y - qz)-nz $ $$ (x + y - qz)-nz=$$ $$ x + y - (q -n)z =$$ $(q -n) = m$ $$ x + y + mz$$

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