MCP HubMCP Hub
스킬 목록으로 돌아가기

explore-diophantine-equations

pjt222
업데이트됨 2 days ago
1 조회
17
2
17
GitHub에서 보기
디자인api

정보

이 스킬은 디오판토스 방정식을 해결하여 선형, 이차 및 펠 유형 방정식의 정수 해를 찾습니다. 확장 유클리드 알고리즘과 하강 방법 같은 핵심 알고리즘을 구현하여 피타고라스 삼조를 생성하거나 모듈러 제약을 통해 해의 부재를 증명합니다. ax + by = c와 같은 문제의 모든 정수 해가 필요할 때나 다른 해를 도출할 수 있는 기본 해를 찾을 때 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/explore-diophantine-equations

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

Explore Diophantine Equations

Resolver ecuaciones diofánticas — ecuaciones polinomiales donde solo se buscan soluciones enteras. Clasificar la ecuación por tipo, probar la solubilidad, encontrar soluciones particulares y generales, y generar familias de soluciones. Cubre ecuaciones lineales, ecuaciones de Pell, tripletas pitagóricas y formas cuadráticas generales.

Cuándo Usar

  • Encontrar todas las soluciones enteras de una ecuación lineal ax + by = c
  • Resolver la ecuación de Pell x^2 - Dy^2 = 1 (o = -1)
  • Generar tripletas pitagóricas u otras familias enteras paramétricas
  • Demostrar que una ecuación dada no tiene soluciones enteras (mediante restricciones modulares)
  • Probar la solubilidad de una ecuación diofántica cuadrática general
  • Encontrar la solución fundamental a partir de la cual se generan todas las demás

Entradas

  • Requerido: La ecuación diofántica a resolver (en forma explícita, ej., 3x + 5y = 17 o x^2 - 7y^2 = 1)
  • Opcional: Si encontrar todas las soluciones, solo una solución particular, o demostrar la no existencia
  • Opcional: Restricciones en los rangos de variables (ej., solo enteros positivos)
  • Opcional: Si expresar la solución general paramétricamente
  • Opcional: Técnica de demostración preferida (constructiva, descenso, obstrucción modular)

Procedimiento

Paso 1: Clasificar el Tipo de Ecuación

Determinar la estructura de la ecuación diofántica para seleccionar el método de resolución apropiado.

  1. Lineal: ax + by = c donde a, b, c son enteros dados y x, y son incógnitas.

    • Método de resolución: Algoritmo euclidiano extendido.
  2. Ecuación de Pell: x^2 - Dy^2 = 1 (o = -1, o = N) donde D es un entero positivo no cuadrado perfecto.

    • Método de resolución: Expansión en fracción continua de sqrt(D).
  3. Pitagórica: x^2 + y^2 = z^2.

    • Método de resolución: Familia paramétrica x = m^2 - n^2, y = 2mn, z = m^2 + n^2.
  4. Cuadrática general: ax^2 + bxy + cy^2 + dx + ey + f = 0.

    • Método de resolución: Completar el cuadrado, reducir a Pell o forma más simple, o aplicar restricciones modulares.
  5. Orden superior o especial: Tipo Fermat (x^n + y^n = z^n para n > 2), suma de cuadrados, u otros.

    • Método de resolución: Obstrucción modular, descenso, o resultados de imposibilidad conocidos.

Registrar la clasificación y el método elegido.

Esperado: Una clasificación precisa con la estrategia de resolución identificada.

En caso de fallo: Si la ecuación no encaja en un tipo estándar, intentar sustitución o transformación para reducirla a una forma conocida. Por ejemplo, x^2 + y^2 + z^2 = n puede abordarse mediante el teorema de los tres cuadrados de Legendre. Si no hay reducción aparente, aplicar restricciones modulares (Paso 4) para probar obstrucciones.

Paso 2: Resolver Ecuaciones Diofánticas Lineales (si tipo = lineal)

Resolver ax + by = c para enteros x, y.

  1. Calcular g = mcd(a, b) usando el algoritmo euclidiano.

  2. Probar solubilidad: Existen soluciones si y solo si g | c.

    • Si g no divide a c, demostrar no existencia: "Dado que mcd(a, b) = g y g no divide a c, la ecuación ax + by = c no tiene soluciones enteras."
    • Detenerse si no existe solución.
  3. Simplificar: Dividir todo por g para obtener (a/g)x + (b/g)y = c/g, donde ahora mcd(a/g, b/g) = 1.

  4. Encontrar una solución particular usando el algoritmo euclidiano extendido:

    • Expresar 1 = (a/g)*s + (b/g)*t mediante retro-sustitución.
    • Multiplicar por c/g: (c/g) = (a/g)(sc/g) + (b/g)(tc/g).
    • Solución particular: x0 = s * (c/g), y0 = t * (c/g).
  5. Escribir la solución general:

    • x = x0 + (b/g)*k
    • y = y0 - (a/g)*k
    • para todos los enteros k.
  6. Aplicar restricciones (si se requieren soluciones positivas):

    • Resolver x0 + (b/g)*k > 0 y y0 - (a/g)*k > 0 para k.
    • Reportar el rango de valores válidos de k o declarar que no existe solución positiva.

Example (15x + 21y = 39):

gcd(15, 21) = 3. Does 3 | 39? Yes.
Simplify: 5x + 7y = 13.
Extended Euclidean: 1 = 3*5 - 2*7.
Multiply by 13: 13 = 39*5 - 26*7.
Particular: x0 = 39, y0 = -26.
General: x = 39 + 7k, y = -26 - 5k, k in Z.
Check (k=0): 5*39 + 7*(-26) = 195 - 182 = 13. Correct.

Esperado: La familia de solución general (x, y) parametrizada por un entero k, con verificación de la solución particular.

En caso de fallo: Si la solución particular es incorrecta, re-verificar la retro-sustitución euclidiana extendida paso a paso. El error más común es un error de signo. Verificar: a * x0 + b * y0 debe ser igual a c exactamente (no solo módulo algo).

Paso 3: Resolver Ecuaciones de Pell (si tipo = Pell)

Resolver x^2 - Dy^2 = 1 donde D es un entero positivo no cuadrado perfecto.

  1. Verificar que D no es un cuadrado perfecto: Si D = k^2, entonces x^2 - k^2*y^2 = (x - ky)(x + ky) = 1, lo que obliga a x - ky = x + ky = +/-1, dando y = 0, x = +/-1 (trivial). La ecuación es interesante solo para D no cuadrado.

  2. Calcular la expansión en fracción continua de sqrt(D):

    • Inicializar: a0 = floor(sqrt(D)), m0 = 0, d0 = 1.
    • Iterar: m_{i+1} = d_i * a_i - m_i, d_{i+1} = (D - m_{i+1}^2) / d_i, a_{i+1} = floor((a0 + m_{i+1}) / d_{i+1}).
    • Continuar hasta que la secuencia de a_i se repita (la expansión es periódica después de a0).
    • Registrar la longitud del período r.
  3. Extraer la solución fundamental de los convergentes:

    • Calcular los convergentes p_i / q_i de la fracción continua.
    • El convergente p_{r-1} / q_{r-1} (al final del primer período) da la solución fundamental:
      • Si r es par: (x1, y1) = (p_{r-1}, q_{r-1}) resuelve x^2 - Dy^2 = 1.
      • Si r es impar: (p_{r-1}, q_{r-1}) resuelve x^2 - Dy^2 = -1 (la ecuación de Pell negativa). Entonces (p_{2r-1}, q_{2r-1}) resuelve la ecuación positiva.
  4. Generar soluciones adicionales a partir de la solución fundamental (x1, y1):

    • La recurrencia: x_{n+1} + y_{n+1} * sqrt(D) = (x1 + y1 * sqrt(D))^{n+1}.
    • Equivalentemente: x_{n+1} = x1 * x_n + D * y1 * y_n, y_{n+1} = x1 * y_n + y1 * x_n.
  5. Presentar la solución fundamental y la recurrencia para generar todas las soluciones.

Fundamental solutions for small D:

D(x1, y1)D(x1, y1)D(x1, y1)
2(3, 2)7(8, 3)13(649, 180)
3(2, 1)8(3, 1)14(15, 4)
5(9, 4)10(19, 6)15(4, 1)
6(5, 2)11(10, 3)17(33, 8)

Esperado: La solución fundamental (x1, y1) verificada por sustitución, más la recurrencia para generar todas las soluciones positivas.

En caso de fallo: Si el cálculo de fracción continua no converge a un período, verificar la fórmula de iteración. La longitud del período r puede ser grande (ej., D = 61 tiene r = 11 y solución fundamental (1766319049, 226153980)). Para D grande, usar herramientas computacionales en lugar de cálculo manual.

Paso 4: Aplicar Restricciones Modulares para Existencia/No Existencia (si tipo = cuadrática general o superior)

Demostrar que una ecuación no tiene soluciones enteras mostrando una obstrucción modular.

  1. Elegir un módulo m (típicamente m = 2, 3, 4, 5, 7, 8, o 16).

  2. Enumerar todos los residuos: Calcular el lado izquierdo módulo m para todos los residuos posibles de las variables.

  3. Verificar si alguna combinación da el lado derecho requerido módulo m.

    • Si ninguna combinación funciona, la ecuación no tiene solución (obstrucción modular).
  4. Obstrucciones comunes:

    • Cuadrados mod 4: n^2 = 0 o 1 (mod 4). Entonces x^2 + y^2 = c no tiene solución si c = 3 (mod 4).
    • Cuadrados mod 8: n^2 = 0, 1, o 4 (mod 8). Entonces x^2 + y^2 + z^2 = c no tiene solución si c = 7 (mod 8).
    • Cubos mod 9: n^3 = 0, 1, u 8 (mod 9). Entonces x^3 + y^3 + z^3 = c puede estar obstruida para ciertos c mod 9.
  5. Si no se encuentra obstrucción, un enfoque modular no puede demostrar la no existencia. Las soluciones pueden o no existir; intentar métodos constructivos o descenso.

Quadratic residues reference:

ModSquares (residues)
3{0, 1}
4{0, 1}
5{0, 1, 4}
7{0, 1, 2, 4}
8{0, 1, 4}
11{0, 1, 3, 4, 5, 9}
13{0, 1, 3, 4, 9, 10, 12}
16{0, 1, 4, 9}

Esperado: Ya sea una demostración de no existencia mediante obstrucción modular, o una declaración de que no se encontró obstrucción en los módulos probados.

En caso de fallo: Si los métodos modulares son inconclusos, intentar descenso infinito: asumir que existe una solución, derivar una solución estrictamente menor, y repetir hasta alcanzar una contradicción con la positividad. Esta técnica es clásica para demostrar que x^4 + y^4 = z^2 no tiene soluciones no triviales.

Paso 5: Generar Familias de Soluciones a partir de la Solución Fundamental

Expresar todas las soluciones en términos de la solución fundamental y parámetros enteros.

  1. Para ecuaciones lineales: La familia es x = x0 + (b/g)*k, y = y0 - (a/g)*k (del Paso 2).

  2. Para ecuaciones de Pell: Usar la recurrencia del Paso 3 para generar las primeras varias soluciones:

    (x1, y1), (x2, y2), (x3, y3), ...
    

    Listar al menos 3-5 soluciones como verificación de cordura.

  3. Para tripletas pitagóricas: Generar tripletas primitivas a partir de parámetros m > n > 0, mcd(m, n) = 1, m - n impar:

    • a = m^2 - n^2, b = 2mn, c = m^2 + n^2.
    • Todas las tripletas primitivas surgen de esta manera (hasta intercambiar a y b).
  4. Para familias generales: Expresar soluciones en forma paramétrica si es posible. Si la ecuación define una curva de género 0, existe una parametrización racional. Si género >= 1, puede haber finitamente muchas soluciones (teorema de Faltings para género >= 2).

  5. Verificar al menos 3 miembros de la familia por sustitución en la ecuación original.

Example (Pell, D = 2):

Fundamental: (x1, y1) = (3, 2). Check: 9 - 2*4 = 1. Correct.
(x2, y2) = (3*3 + 2*2*2, 3*2 + 2*3) = (17, 12). Check: 289 - 2*144 = 1.
(x3, y3) = (3*17 + 2*2*12, 3*12 + 2*17) = (99, 70). Check: 9801 - 2*4900 = 1.

Esperado: Una descripción paramétrica o recursiva de todas las soluciones, con al menos 3 soluciones verificadas.

En caso de fallo: Si las soluciones generadas fallan la verificación, la solución fundamental o la fórmula de recurrencia es incorrecta. Para ecuaciones de Pell, re-derivar la solución fundamental de la fracción continua. Para ecuaciones lineales, re-verificar el cálculo euclidiano extendido.

Validación

  • La ecuación está correctamente clasificada por tipo (lineal, Pell, pitagórica, cuadrática general, orden superior)
  • Para ecuaciones lineales: mcd(a, b) | c se verifica antes de resolver
  • La retro-sustitución euclidiana extendida está verificada: ax0 + by0 = c exactamente
  • La solución general incluye todas las soluciones (parametrizada por entero k o recurrencia)
  • Para Pell: D se verifica como no cuadrado antes de aplicar el método de fracción continua
  • Para Pell: la solución fundamental satisface x1^2 - D*y1^2 = 1 por cálculo directo
  • Las demostraciones de obstrucción modular enumeran todas las combinaciones de residuos, no solo algunas
  • Al menos 3 miembros de cualquier familia de soluciones se verifican por sustitución
  • Las restricciones (enteros positivos, rango acotado) se aplican después de encontrar la solución general
  • Las afirmaciones de no existencia se justifican ya sea por condición de mcd u obstrucción modular

Errores Comunes

  • Asumir que todas las ecuaciones con mcd | c tienen soluciones positivas: La solución general x = x0 + (b/g)*k incluye valores negativos. Las soluciones positivas pueden no existir incluso cuando la ecuación es resoluble sobre todos los enteros.

  • Confundir x^2 - Dy^2 = 1 con x^2 - Dy^2 = -1: La ecuación de Pell negativa tiene soluciones solo cuando la longitud del período de fracción continua es impar. Aplicar la fórmula de la ecuación positiva a un objetivo de ecuación negativa da un resultado incorrecto.

  • Olvidar la solución trivial de la ecuación de Pell: (x, y) = (1, 0) siempre satisface x^2 - Dy^2 = 1 pero no es útil para generar soluciones no triviales. La solución fundamental es la solución más pequeña con y > 0.

  • Obstrucción modular incompleta: Verificar solo mod 2 o mod 4 puede omitir obstrucciones visibles en módulos más altos. Si los primeros módulos no muestran obstrucción, intentar mod 8, 9, 16, o el discriminante de la forma cuadrática.

  • Error de uno en el período de fracción continua: Los índices de convergentes deben rastrearse cuidadosamente. La solución fundamental viene de p_{r-1}/q_{r-1} donde r es la longitud del período, no de p_r/q_r.

  • Descenso infinito sin caso base: Al usar descenso para demostrar no existencia, se debe mostrar que el descenso termina en una contradicción (ej., x = 0 contradice x > 0). Sin este caso base, el argumento está incompleto.

  • Aplicar incorrectamente el Último Teorema de Fermat: x^n + y^n = z^n no tiene soluciones enteras no triviales para n > 2 (Wiles, 1995), pero esto no aplica a ecuaciones con coeficientes diferentes como 2x^3 + 3y^3 = z^3.

Habilidades Relacionadas

  • analyze-prime-numbers -- La factorización y el cálculo de mcd son prerrequisitos para resolver ecuaciones diofánticas
  • solve-modular-arithmetic -- Las congruencias lineales ax = c (mod b) son equivalentes a ecuaciones diofánticas lineales
  • derive-theoretical-result -- Técnicas de derivación formal para demostrar resultados de imposibilidad diofántica

GitHub 저장소

pjt222/agent-almanac
경로: i18n/es/skills/explore-diophantine-equations
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

executing-plans

디자인

executing-plans 스킬은 검토 체크포인트가 포함된 통제된 배치로 실행할 완전한 구현 계획이 있을 때 사용합니다. 이 스킬은 계획을 불러와 비판적으로 검토한 후, 소규모 배치(기본값 3개 작업)로 작업을 실행하면서 각 배치 사이에 진행 상황을 아키텍트 검토를 위해 보고합니다. 이를 통해 내재된 품질 관리 체크포인트를 갖춘 체계적인 구현이 보장됩니다.

스킬 보기

requesting-code-review

디자인

이 스킬은 코드 변경 사항을 요구 사항에 따라 분석하기 위해 코드 리뷰어 하위 에이전트를 호출합니다. 작업 완료 후, 주요 기능 구현 후, 또는 메인 브랜치에 병합하기 전에 사용해야 합니다. 이 리뷰는 현재 구현체와 원래 계획을 비교하여 문제를 조기에 발견하는 데 도움이 됩니다.

스킬 보기

connect-mcp-server

디자인

이 스킬은 개발자들이 HTTP, stdio 또는 SSE 전송 방식을 통해 MCP 서버를 Claude Code에 연결하는 포괄적인 가이드를 제공합니다. GitHub, Notion 및 사용자 정의 API와 같은 외부 서비스를 통합하기 위한 설치, 구성, 인증 및 보안을 다룹니다. MCP 통합 설정, 외부 도구 구성 또는 Claude의 모델 컨텍스트 프로토콜 작업 시 활용하세요.

스킬 보기

web-cli-teleport

디자인

이 스킬은 작업 분석을 기반으로 개발자가 Claude Code 웹 인터페이스와 CLI 인터페이스 중 선택할 수 있도록 돕고, 두 환경 간 원활한 세션 텔레포트를 가능하게 합니다. 웹, CLI 또는 모바일 환경 전환 시 세션 상태와 컨텍스트를 관리하여 워크플로를 최적화합니다. 다양한 단계에서 서로 다른 도구가 필요한 복잡한 프로젝트에 사용하세요.

스킬 보기