PPairCrest
Ambiente de programação com IA

Pareamento estável por preferências

Pareie dois grupos de até 20 membros por listas completas e estritas de preferências.

● ● ●PairCrest●
Fluxos de trabalho · Pareamento estável por preferências ×
from collections import deque
def stable_pairs(proposers, receivers):
    if type(proposers) not in (list, tuple) or type(receivers) not in (list, tuple):
        raise ValueError("preference tables must be lists or tuples")
    n = len(proposers)
    if n > 20 or len(receivers) != n: raise ValueError("equal sizes up to 20")
    for rows in (proposers, receivers):
        for row in rows:
            if type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int for v in row) or set(row) != set(range(n)):
                raise ValueError("complete strict preferences")
    ranks = [{v:i for i,v in enumerate(row)} for row in receivers]
    free, next_choice = deque(range(n)), [0]*n
    owner, partner = [None]*n, [None]*n
    while free:
        p = free.popleft()
        r = proposers[p][next_choice[p]]
        next_choice[p] += 1
        old = owner[r]
        if old is None or ranks[r][p] < ranks[r][old]:
            owner[r], partner[p] = p, r
            if old is not None: partner[old] = None; free.append(old)
        else: free.append(p)
    return partner
✳Pareie dois grupos de até 20 membros por listas completas e estritas de preferências.
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
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.
Projeto
Teste grupos vazios e escolhas concorrentes, rejeitando preferências repetidas ou ausentes e conferindo a ausência de pares bloqueadores.
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

Pareamento estável por preferências

Fluxos de trabalho ↗
Fluxos de trabalho
from collections import deque
def stable_pairs(proposers, receivers):
    if type(proposers) not in (list, tuple) or type(receivers) not in (list, tuple):
        raise ValueError("preference tables must be lists or tuples")
    n = len(proposers)
    if n > 20 or len(receivers) != n: raise ValueError("equal sizes up to 20")
    for rows in (proposers, receivers):
        for row in rows:
            if type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int for v in row) or set(row) != set(range(n)):
                raise ValueError("complete strict preferences")
    ranks = [{v:i for i,v in enumerate(row)} for row in receivers]
    free, next_choice = deque(range(n)), [0]*n
    owner, partner = [None]*n, [None]*n
    while free:
        p = free.popleft()
        r = proposers[p][next_choice[p]]
        next_choice[p] += 1
        old = owner[r]
        if old is None or ranks[r][p] < ranks[r][old]:
            owner[r], partner[p] = p, r
            if old is not None: partner[old] = None; free.append(old)
        else: free.append(p)
    return partner
Ambiente de programação com IA

Torne os requisitos de atribuição visíveis antes de revisar o código

Um recurso de atribuição precisa de mais do que uma lista de pares: exige uma descrição clara das entradas válidas e do que torna um resultado aceitável. O PairCrest oferece um ambiente de programação com IA para Windows para discutir esses requisitos com os arquivos pertinentes do projeto. Comece pelas preferências recebidas pela aplicação e pelas restrições que ela deve respeitar; depois, solicite uma inspeção da implementação atual.

O exemplo de pareamento estável por preferências oferece uma possível tarefa de desenvolvimento. Você pode revisar como classificações completas são validadas, como itens ainda sem par são representados durante o processamento e como os pares finais chegam ao chamador. Se os requisitos incluírem empates, preferências ausentes ou grupos de tamanhos diferentes, identifique essa incompatibilidade antes de solicitar uma adaptação. As premissas mais restritas do exemplo devem permanecer visíveis durante a discussão, em vez de se tornarem uma política oculta da aplicação.

Um modelo de IA sem censura pode ser escolhido por um endpoint compatível com OpenAI ou um endpoint Anthropic suportado, com credenciais quando exigidas. O modelo e o servidor definem contexto, ferramentas e restrições. Revise as verificações de entrada e o tratamento dos resultados propostos; depois, teste tabelas pequenas de preferências cujos resultados você possa examinar. Um servidor de modelos local separado cobre apenas a inferência; outras ferramentas ainda podem se conectar a serviços externos.

Esclarecendo um recurso baseado em preferências

Como é um requisito de atribuição útil?

Descreva os grupos, as formas de preferência permitidas e a propriedade que a atribuição final deve satisfazer. Dê um exemplo pequeno que possa ser examinado por pessoas. Evite usar uma palavra ampla como melhor sem dizer como a aplicação deve avaliar o resultado.

Posso adicionar empates sem alterar o contrato ao redor?

Não presuma que sim. O exemplo espera preferências completas e estritas. Empates podem alterar tanto a representação das entradas quanto o significado de um resultado aceitável. Solicite essas decisões explicitamente antes de revisar qualquer algoritmo ou alteração no chamador.

Como examinar a saída sem um grande conjunto de dados de teste?

Comece com tabelas pequenas de preferências e confira os pares resultantes em relação à propriedade declarada. Inclua classificações inválidas para testar a rejeição. Esses casos específicos ajudam na revisão, enquanto a suíte de testes da aplicação deve cobrir seus requisitos mais amplos de entrada e integração.

O PairCrest decide o que é justo para os usuários?

O ambiente de software não define sua política de alocação. Você fornece os requisitos e avalia suas consequências. Peça ao assistente que explique as premissas da implementação; depois, revise se elas correspondem às regras que sua aplicação deve usar.

Baixar para Windows ↗

PairCrest · Atualizado 2026-10-25