QQuotaMosaic
Ambiente de programação com IA

Alocação pelos maiores restos

Aloque até 10000 assentos entre no máximo 1000 pesos inteiros não negativos pelos maiores restos.

● ● ●QuotaMosaic●
Fluxos de trabalho · Alocação pelos maiores restos ×
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 result
✳Aloque até 10000 assentos entre no máximo 1000 pesos inteiros não negativos pelos maiores restos.
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
01

Modelos

Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.

02

Projeto

Teste pesos zero e restos empatados com desempate pela ordem de entrada, rejeitando alocação positiva com peso total zero antes da divisão.

03

Revise antes de aplicar

Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.

Fluxos de trabalho

Alocação pelos maiores restos

Fluxos de trabalho ↗
Fluxos de trabalho
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 result
Ambiente de programação com IA

Faça as alterações de rateio explicarem seus totais e empates

Uma rotina de rateio pode satisfazer o total e distribuir parcelas individuais de forma diferente da regra esperada pelos usuários. QuotaMosaic é um software de programação com IA para Windows para examinar essa distinção no seu projeto. Traga a implementação, o código chamador e alguns rateios esperados para uma conversa antes de pedir uma alteração no código-fonte.

Uma tarefa de revisão é um rateio pelo método dos maiores restos, em que unidades inteiras precisam ser atribuídas a partir de pesos não negativos. Peça ao modelo conectado que examine como o rateio básico e as unidades restantes se encaixam. Inclua um exemplo com restos empatados e declare explicitamente a regra de desempate, para que uma mudança de ordenação não altere silenciosamente o resultado.

Revise a interface com o mesmo cuidado que a aritmética. Defina o que uma entrada vazia ou um total de pesos igual a zero deve significar quando unidades são solicitadas e examine como as falhas chegam ao código chamador. Execute as verificações do projeto com pequenos exemplos conferidos de forma independente e verifique tanto a soma final quanto as atribuições individuais. Preservar uma invariante não comprova a outra.

QuotaMosaic se conecta a endpoints suportados compatíveis com OpenAI ou da Anthropic. Um modelo de IA abliterado pode ser selecionado onde estiver disponível, com capacidades e limites definidos pelo modelo e pelo servidor. Use o modelo para examinar as regras e preparar uma correção revisável e verifique o comportamento resultante na aplicação.

Totais e empates nas alterações de rateio — perguntas antes de editar

O que devo declarar sobre empates antes de solicitar uma correção?

Especifique como restos iguais são ordenados, inclusive se a ordem original da entrada importa. Forneça um exemplo empatado com o rateio esperado. Caso contrário, uma mudança de ordenação aparentemente inofensiva pode alterar qual destinatário recebe a última unidade.

Conferir a soma basta para verificar a alteração?

Não. Vários rateios diferentes podem ter o mesmo total. Confira também o valor atribuído a cada destinatário e o resultado do desempate. Use exemplos esperados independentes em vez de apenas repetir o cálculo da implementação em um teste.

Como tratar um peso total igual a zero?

Defina expectativas separadas para solicitar nenhuma unidade e para solicitar um número positivo. Revise o contrato de falha existente com o código chamador. O modelo não deve inventar destinatários nem dividir por um total indefinido para fazer a função retornar algo.

O exemplo define todas as políticas de rateio?

Ele define um contexto específico de revisão com unidades inteiras e pesos não negativos. Se a aplicação tiver limites, mínimos ou outras prioridades, inclua-os explicitamente. Examine se a alteração proposta ainda implementa a política exigida pelos usuários.

Baixar para Windows ↗

QuotaMosaic · Atualizado 2026-10-25