QQuotaMosaic
Pracovní prostředí s AI pro kód

Rozdělení podle největších zbytků

Rozdělte nejvýše 10000 míst mezi nejvýše 1000 nezáporných celočíselných vah podle největších zbytků.

● ● ●QuotaMosaic●
Pracovní postupy · Rozdělení podle největších zbytků ×
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
✳Rozdělte nejvýše 10000 míst mezi nejvýše 1000 nezáporných celočíselných vah podle největších zbytků.
✓ ZměnyPřed použitím zkontrolujte ↗
Ilustrace pracovního prostředí
01

Modely

Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.

02

Projekt

Ověřte nulové váhy a shodné zbytky řešené pořadím vstupu a odmítněte kladný příděl při nulové celkové váze před dělením.

03

Před použitím zkontrolujte

Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.

Pracovní postupy

Rozdělení podle největších zbytků

Pracovní postupy ↗
Pracovní postupy
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
Pracovní prostředí s AI pro kód

Ať změny rozdělování vysvětlují součty i shody

Rozdělovací rutina může dodržet celkový součet, ale jednotlivé podíly rozdělit jinak, než uživatelé očekávají. QuotaMosaic je programovací software s AI pro Windows k prozkoumání tohoto rozdílu ve vlastním projektu. Před žádostí o změnu zdroje přineste do konverzace implementaci, volající kód a několik očekávaných rozdělení.

Jednou kontrolní úlohou je rozdělování metodou největších zbytků, při němž se celé jednotky přidělují podle nezáporných vah. Požádejte připojený model o kontrolu vztahu základního přidělení a zbývajících jednotek. Zahrňte příklad shodných zbytků a výslovně určete pravidlo pro shody, aby změna řazení tiše nezměnila výsledek.

Rozhraní kontrolujte stejně pečlivě jako aritmetiku. Určete význam prázdného vstupu nebo nulové celkové váhy při požadavku na jednotky a prověřte, jak se selhání dostanou k volajícímu. Spusťte kontroly projektu na malých nezávisle ověřených příkladech a ověřujte konečný součet i jednotlivá přidělení. Zachování jednoho invariantu neprokazuje druhý.

QuotaMosaic se připojuje k podporovaným koncovým bodům kompatibilním s OpenAI nebo ke koncovým bodům Anthropic. Kde je dostupný, lze zvolit abliterovaný model AI; jeho možnosti a limity určuje model a server. Pomocí modelu prověřte pravidla a připravte kontrolovatelnou opravu, poté ověřte výsledné chování v aplikaci.

Součty a shody při rozdělování — otázky před úpravou

Co mám uvést o shodách před žádostí o opravu?

Určete řazení shodných zbytků včetně významu původního pořadí vstupu. Poskytněte příklad shody s očekávaným rozdělením. Jinak může zdánlivě neškodná změna řazení změnit příjemce poslední jednotky.

Stačí změnu ověřit kontrolou součtu?

Ne. Stejný součet může mít několik různých rozdělení. Ověřte částku přidělenou každému příjemci i výsledek shod. Použijte nezávislé očekávané příklady a neopakujte v testu jen výpočet implementace.

Jak zacházet s nulovou celkovou vahou?

Určete zvlášť očekávání pro požadavek bez jednotek a pro kladný počet. Prověřte existující podmínky selhání s volajícím. Model nemá vymýšlet příjemce ani dělit nedefinovaným celkem jen proto, aby funkce něco vrátila.

Definuje příklad všechna pravidla rozdělování?

Definuje konkrétní kontext kontroly s celými jednotkami a nezápornými vahami. Má-li aplikace maxima, minima nebo jiné priority, výslovně je zahrňte. Prověřte, zda navržená změna stále implementuje pravidla potřebná pro uživatele.

Stáhnout pro Windows ↗

QuotaMosaic · Aktualizováno 2026-10-25