ForHosting KIT · Utilidades de desarrollo

Comprobar representación con dos monedas coprimas

El verificador de representación con dos monedas determina si un objetivo no negativo puede formarse usando cualquier cantidad no negativa de dos denominaciones dadas.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Las denominaciones deben ser coprimas, lo que permite resolver el problema con precisión mediante aritmética modular. Si el objetivo es representable, el resultado incluye un par exacto de cantidades de monedas; en caso contrario, indica claramente que no existe tal par. Resulta útil para experimentos numéricos, ejercicios de matemática discreta, diseño de denominaciones y validación de combinaciones de tamaño exacto sin búsquedas exhaustivas.

Defina con precisión el problema de las dos monedas

Introduzca dos denominaciones enteras positivas como coin_a y coin_b, y después un objetivo entero no negativo. El verificador busca enteros no negativos count_a y count_b tales que la cantidad del primer tipo multiplicada por coin_a, más la cantidad del segundo tipo multiplicada por coin_b, sea exactamente igual al objetivo. Por tanto, un resultado representable no significa que se haya hallado un valor cercano ni una combinación inferior a un presupuesto: la igualdad debe ser exacta y ninguna cantidad puede ser negativa. Cero es un objetivo válido, pues se obtiene eligiendo cero monedas de cada tipo. Una denominación igual a uno también es válida y permite representar cualquier objetivo no negativo. Las tres entradas deben ser enteros seguros; se rechazan decimales, cadenas numéricas, infinitos y enteros fuera del intervalo exacto de JavaScript para evitar redondeos silenciosos. Además, ambas denominaciones deben ser coprimas, es decir, su máximo común divisor debe ser uno.

Comprenda el cálculo modular

Como las denominaciones son coprimas, la primera moneda posee un inverso multiplicativo módulo la segunda. El verificador calcula ese inverso mediante el algoritmo de Euclides extendido y lo usa para identificar el único valor candidato de count_a comprendido entre cero y coin_b menos uno que satisface la congruencia necesaria. Tras restar del objetivo el valor aportado por esas primeras monedas, queda un resto. Si es no negativo, resulta divisible por coin_b y proporciona un count_b válido; la respuesta incluye ambas cantidades como prueba concreta. Si el resto es negativo, no existe representación no negativa. La conclusión es completa y no heurística: cualquier otra solución entera modifica count_a en un múltiplo completo de coin_b y count_b en sentido contrario mediante un múltiplo completo de coin_a. Partir del menor candidato no negativo para count_a implica que un resto negativo no puede corregirse sin volver negativo count_a. El método funciona en tiempo logarítmico, sin probar uno por uno numerosos recuentos de monedas.

Interprete los resultados y los errores de entrada

Una respuesta con representable igual a verdadero incluye count_a y count_b. Al multiplicar cada cantidad por su denominación correspondiente se reconstruye el objetivo. El par devuelto es una solución válida; un objetivo suficientemente grande puede admitir varias representaciones y el verificador no pretende enumerarlas ni optimizarlas. Una respuesta falsa omite las cantidades porque no existe ningún par aplicable. Distinga un error por monedas no coprimas de un resultado falso. Falso significa que la entrada cumple el contrato, pero ese objetivo concreto no puede formarse. Un error significa que el par de denominaciones queda fuera del dominio definido, por lo que no se emite una decisión de representabilidad. Por ejemplo, las monedas 6 y 9 comparten el factor 3 y se rechazan incluso si el objetivo es divisible por 3. Esta separación evita confundir una infracción del dominio con una imposibilidad matemática. El cálculo es determinista, no usa servicios de red y produce el mismo resultado con las mismas entradas enteras exactas tanto en el navegador como mediante la API.

Compruebe un importe de pago exacto

Determine si dos denominaciones disponibles producen el total requerido y obtenga un par de cantidades cuando sea posible.

Verifique un ejercicio de teoría de números

Pruebe un objetivo para un par de denominaciones coprimas y compare la solución devuelta con su cálculo manual.

Valide combinaciones de tamaño fijo

Modele dos tamaños de paquete coprimos como monedas y compruebe si puede reunir una cantidad exacta sin paquetes parciales.

¿Qué significa que un objetivo sea representable?

Significa que el objetivo es igual a coin_a por count_a más coin_b por count_b para ciertas cantidades enteras no negativas.

¿Por qué las monedas deben ser coprimas?

Esta capacidad usa el contrato de dos monedas coprimas, que garantiza el inverso modular requerido por su algoritmo directo. Un par con un divisor común mayor que uno se rechaza como entrada no válida.

¿Un resultado verdadero incluye una combinación?

Sí. Devuelve count_a y count_b como una combinación exacta y no negativa que reconstruye el objetivo.

¿Devuelve todas las combinaciones posibles?

No. Decide si existe representación y proporciona una solución cuando la hay; no enumera ni optimiza todos los pares posibles.

¿Puede ser cero el objetivo?

Sí. El cero se representa usando cero monedas de cada denominación.

¿Cuánto cuesta una solicitud API?

Cada solicitud API cuesta $0.002. La versión para navegador puede ejecutar localmente el mismo cálculo determinista.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/numth/coin-representable-two

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/numth/coin-representable-two \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"coin_a":4,"coin_b":7,"target":23}'
{
  "coin_a": 4,
  "coin_b": 7,
  "target": 23
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.coin_representable_two",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →