Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

7 votos

Caballero mover variante: Puede mover de A B

Dado un N×N "ajedrez" de la junta (Deje N=10100) y un caballero en (0,0).

Puede que el caballero ve a la posición (x,y) con saltar [a,b] se mueve ?

saltar [a,b] media: el caballero de la en (x,y) puede mover a (x±a,y±b), (xa,y±b), (x±b,y±a) or (xb,y±a)


¿Puedo usar Un* algoritmo de búsqueda para resolver este problema ?

Puedo solucionarlo sin necesidad de un ordenador ?

5voto

Mike Puntos 1113

He aquí una prueba de contorno para el específico subcase de si el caballo puede llegar a todas las posiciones; el resto debe ser un ejercicio fácil. Primero de todo, (como se señaló en los comentarios) el caballero puede llegar a todas partes iff puede obtener de (0,0)(1,0): obviamente, si se puede llegar a todas las plazas que a continuación, se puede llegar a cualquier cuadrado. Por el contrario, en caso de llegar a (1,0), por simetría se puede llegar a (0,1) y, a continuación, por componer el movimiento de las secuencias de m n veces respectivamente, entonces se puede obtener a (m,n) cualquier mn.

Ahora, tenga en cuenta que se puede restringir a la mitad de los movimientos disponibles si estamos dispuestos a hablar de ambos positivos y negativos mover cargos; nunca debemos mueve de la forma (x,y)(x+a,y+b) (x,y)(xa,yb) en la misma secuencia (desde que se podría llegar al mismo lugar por la omisión de ambos movimientos), por lo que podemos hablar de α(+a,+b) se mueve con la salvedad de que los α puede ser negativo. Para la concreción' bien, vamos a limitar a las cuatro clases de movimientos (±a,+b)(±b,+a), y el uso de las variables α+, α, β+, β para el número de movimientos de los cuatro tipos. A continuación, un movimiento de la secuencia para llegar a (1,0) debemos tener a(α+α)+b(β+β)=1 y simultáneamente b(α++α)+a(β++β)=0. Ahora, la última ecuación se puede resolver por α++α=a, β++β=b, y si gcd (y sólo entonces), a continuación, podemos encontrar c, d tal que ac+bd=1.

A partir de estos valores, sin embargo, podemos backsolve para\alpha_\pm\beta_\pm: \alpha_++\alpha_- = a \alpha_+-\alpha_-=c obtenemos \alpha_+ = \frac12(a+c)\alpha_-=\frac12(a-c), y, a continuación, del mismo modo \beta_+ = \frac12(-b+d)\beta_- = \frac12(-b-d).

Además, desde el \gcd(a,b)=1, entonces al menos uno de a,b es impar; vamos a decir que a es siempre impar. Ahora, mediante la adición de b cy restando a d si es necesario, siempre podemos optar c impar y d, incluso en ac+bd=1; si a es impar y b es incluso entonces este es el final de la historia, desde entonces \alpha_\pm=\frac12(a\pm c), y, asimismo, \beta_\pm todos serán enteros. Por desgracia, si a b son ambos impares, entonces no hay manera de elegir a c d tanto extraña, pues, a continuación, ac+bd siempre será incluso — este es el "tablero de ajedrez" obstrucción, que cada secuencia de movimientos conducirá a un cuadrado del mismo color (es decir, con x+y tener la misma paridad) como el punto de partida de la plaza.

Por otro lado, esta construcción muestra que el tablero de ajedrez obstrucción es esencialmente la única obstrucción; a partir de a, b de enfrente de la paridad (de nuevo, se puede elegir arbitrariamente a como el impar) con \gcd(a,b)=1, entonces podemos encontrar c, d tal que ac+bd=1 mediante el algoritmo de Euclides, a continuación, encontrar \alpha_\pm \beta_\pm a partir de las ecuaciones anteriores; estos valores dan el movimiento de la secuencia necesaria para llegar a (1, 0), y a partir de ahí podemos llegar a cualquier otro lugar en la (presunta infinito) de la junta. (Un ejercicio interesante es probar y encontrar el más pequeño de la junta en la que se puede llegar a todas partes, teniendo en cuenta los efectos de borde — la (n, n-1) caso hace un lindo desafío).

4voto

benh Puntos 5591

Para agregar una expresión algebraica enfoque va en la misma dirección como Steven Stadnicki excelente respuesta:

Vamos a llamar a cualquier combinación de movimientos de una traducción. Si la junta era infinito, el conjunto de todas las posibles traducciones de el caballero iba a formar un subgrupo del grupo aditivo \Bbb Z \times \Bbb Z. Por lo tanto, la pregunta podría ser reformulado como si (\pm a,b),(\pm b,a) generar \Bbb Z \times \Bbb Z.

Esto es obviamente falso si (a,b) no coprime. Así que supongamos a,b son coprime y deje G:=\langle (\pm a,b),(\pm b,a)\rangle \subseteq \Bbb Z \times \Bbb Z Está claro que (0,2a),(0,2b) \in G, por lo tanto (0,2) \in G. Del mismo modo, (2,0) \in G, mostrando el 2\Bbb Z \times 2\Bbb Z \subseteq G. Así que la única pregunta que queda es si las imágenes de (a,b),(b,a) generar \Bbb Z/2\Bbb Z \times \Bbb Z/2\Bbb Z. Este es el caso de la fib (a,b) \not \equiv (b,a)\Bbb Z/2\Bbb Z \times \Bbb Z/2\Bbb Z, o, equivalentemente,(a,b) \not \equiv (1,1) \bmod 2.

En otras palabras:

En un infinito de la junta de el caballero llega a todas las posiciones iff a,b coprime y de distinta paridad.

Tenga en cuenta que este argumento puede ser traducido a \Bbb N \times \Bbb N si la junta directiva debe estar acotada a la izquierda y a la parte inferior de (0,0).

0voto

MPritch Puntos 2986

El caballero sólo puede moverse en posiciones como(x,y) = (a(m_a-n_a)+b(m_b-n_b),a(r_a-s_a)+b(r_b-s_b)) donde

  • m = número de veces que el caballero va a la derecha
  • n = número de veces que el caballero va a la izquierda
  • r = número de veces que el caballero va para arriba
  • s = número de veces que el caballero va hacia abajo
  • m_a = número de veces que el caballero va a la derecha por a
  • n_a = número de veces que el caballero va a la izquierda por a
  • m_b = número de veces que el caballero va a la derecha por b
  • n_b = número de veces que el caballero va a la izquierda por b
  • r_a = número de veces que el caballero va por a
  • s_a = número de veces que el caballero va por a
  • r_b = número de veces que el caballero va por b
  • s_b = número de veces que el caballero va por b

De hecho, a considerar sólo el movimiento en x-eje: vamos a m el número de veces que el caballero va a la derecha, y n el número de veces que el caballero va a la izquierda. A continuación, se obtiene que, después de algunos movimientos, el caballero está en la (am_a + bm_b-an_a -bn_b) = (a(m_a-n_a)+b(m_b-n_b))-ésimo de la ranura, dondem_a+m_b = mn_a +n_b =n. Ahora, vamos a echar un vistazo en el movimiento vertical: en cada movimiento (derecha o izquierda) el caballero también puede ir hacia arriba o hacia abajo. Deje r el número de veces que el caballero va hacia arriba y s el número de veces que el caballero va hacia abajo. Del mismo modo que el caballero puede llegar a todas las ranuras en la forma (ar_a + br_b-as_a -bs_b) = (a(r_a-s_a)+b(r_b-s_b))-ésimo de la ranura, donder_a+r_b = rs_a +s_b =s. Claramente r+s=m+n.

Así que las posiciones que el caballero puede llegar en forma (a(m_a-n_a)+b(m_b-n_b),a(r_a-s_a)+b(r_b-s_b))

Tenga en cuenta que si GCD(a,b) = g > 1 entonces el caballero sólo puede llegar a posiciones múltiples de g.

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