PPairCrest
Flussi di lavoro

Flussi di programmazione · Abbinamento stabile delle preferenze

03
Prodotto

Flussi di lavoro

Abbina due gruppi di al massimo 20 membri con liste complete e strette di preferenze. Prova gruppi vuoti e scelte concorrenti, rifiutando preferenze ripetute o mancanti e verificando l’assenza di coppie bloccanti.

01

Scarica l’applicazione

Seleziona una cartella e chiedi all’assistente di leggere i file interessati prima di modificarli. Definisci obiettivo e limiti dell’attività.

02

Apri la cartella del progetto

Scegli un endpoint compatibile. Gli strumenti disponibili e la qualità delle risposte dipendono dal modello e dal server configurati.

03

Collega e prova il modello

Controlla le modifiche e l’output dei comandi. Esegui le verifiche del progetto prima di accettare il risultato: il codice generato non è automaticamente collaudato.

04

Controlla le modifiche ed esegui i test

Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.

Abbinamento stabile delle preferenze

Flussi di lavoro
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

Controlla prima di applicare. Controlla le modifiche e l’output dei comandi. Esegui le verifiche del progetto prima di accettare il risultato: il codice generato non è automaticamente collaudato.

Ambiente di sviluppo con IA

La prossima idea comincia qui.

Scarica per Windows ↗