Modelos
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Distribuye hasta 10000 puestos entre un máximo de 1000 pesos enteros no negativos mediante restos mayores.
def allocate(weights, seats):
if type(weights) not in (list, tuple) or len(weights) > 1000:
raise ValueError("weights.container")
weights = tuple(weights)
if type(seats) is not int or not 0 <= seats <= 10000:
raise ValueError("seats.range")
if len(weights) > 1000 or any(type(w) is not int or w < 0 for w in weights):
raise ValueError("weights.invalid")
total = sum(weights)
if total == 0:
if seats:
raise ValueError("weight.zero")
return [0] * len(weights)
result = [w * seats // total for w in weights]
remaining = seats - sum(result)
order = sorted(range(len(weights)), key=lambda i: (-(weights[i] * seats % total), i))
for i in order[:remaining]:
result[i] += 1
return resultConfigura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Comprueba pesos cero y restos empatados con desempate por orden de entrada, rechazando una asignación positiva con peso total cero antes de dividir.
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
def allocate(weights, seats):
if type(weights) not in (list, tuple) or len(weights) > 1000:
raise ValueError("weights.container")
weights = tuple(weights)
if type(seats) is not int or not 0 <= seats <= 10000:
raise ValueError("seats.range")
if len(weights) > 1000 or any(type(w) is not int or w < 0 for w in weights):
raise ValueError("weights.invalid")
total = sum(weights)
if total == 0:
if seats:
raise ValueError("weight.zero")
return [0] * len(weights)
result = [w * seats // total for w in weights]
remaining = seats - sum(result)
order = sorted(range(len(weights)), key=lambda i: (-(weights[i] * seats % total), i))
for i in order[:remaining]:
result[i] += 1
return resultUna rutina de reparto puede satisfacer el total y distribuir las cuotas individuales de forma distinta a la regla que esperan los usuarios. QuotaMosaic es un software de programación con IA para Windows que permite examinar esa distinción en tu proyecto. Lleva a la conversación la implementación, el código llamador y algunos repartos esperados antes de pedir un cambio de código.
Una tarea de revisión es un reparto por restos mayores en el que deben asignarse unidades enteras a partir de pesos no negativos. Pide al modelo conectado que examine cómo encajan la asignación base y las unidades restantes. Incluye un ejemplo con restos empatados e indica explícitamente la regla de desempate para que un cambio de orden no altere el resultado sin avisar.
Revisa la interfaz con el mismo cuidado que la aritmética. Define qué deben significar una entrada vacía o un total de pesos cero cuando se solicitan unidades y examina después cómo llegan los fallos al código llamador. Ejecuta las comprobaciones del proyecto con ejemplos pequeños verificados de forma independiente y comprueba tanto la suma final como las asignaciones individuales. Conservar una propiedad invariable no demuestra la otra.
QuotaMosaic se conecta a endpoints compatibles con OpenAI o de Anthropic admitidos. Puedes seleccionar un modelo de IA ablacionado cuando esté disponible, con capacidades y límites establecidos por el modelo y el servidor. Utiliza el modelo para examinar las reglas y preparar un parche revisable y verifica después el comportamiento resultante en tu aplicación.
Especifica cómo se ordenan los restos iguales, incluido si importa el orden de entrada original. Proporciona un ejemplo de empate con el reparto esperado. De lo contrario, un cambio de ordenación aparentemente inocuo puede alterar qué destinatario recibe la última unidad.
No. Varios repartos diferentes pueden tener el mismo total. Comprueba también la cantidad asignada a cada destinatario y el resultado del desempate. Usa ejemplos esperados independientes en vez de limitarte a repetir el cálculo de la implementación en una prueba.
Define expectativas separadas para no solicitar unidades y para solicitar una cantidad positiva. Revisa el contrato de fallo existente con el código llamador. El modelo no debe inventar destinatarios ni dividir por un total indefinido para conseguir que la función devuelva algo.
Define un contexto particular de revisión con unidades enteras y pesos no negativos. Si tu aplicación tiene topes, mínimos u otras prioridades, inclúyelos explícitamente. Examina si el cambio propuesto sigue aplicando la política que necesitan tus usuarios.
QuotaMosaic · Actualizado 2026-10-25