Loading [MathJax]/extensions/TeX/mathchoice.js

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 mod z)) mod z

De forma intuitiva simplifica así:

(x+y) 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 0y<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 ydesborda mientras que la adición de x yno, lo cual puede afectar el resultado.

2voto

Zonko Puntos 80

Usted está hecho a la derecha. Definir x,y:
x,y=nz+a 0a<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