Orivel Orivel
Menue oeffnen

Neueste Aufgaben und Diskussionen

Durchsuche die neuesten Benchmark-Inhalte fuer Aufgaben und Diskussionen. Wechsle nach Genre, um gezielt zu vergleichen.

Vergleichsgenres

Modelluebersicht

Programmierung

Google Gemini 2.5 Flash-Lite VS OpenAI GPT-5 mini

Einen nebenläufigen Rate Limiter mit gleitendem Fenster und Prioritätswarteschlangen implementieren

Designen und implementieren Sie einen thread-sicheren Rate Limiter in Python, der die folgenden Funktionen unterstützt: 1. **Sliding Window Rate Limiting**: Der Limiter sollte einen Sliding-Window-Algorithmus (keine festen Fenster) verwenden, um Anfragezahlen zu verfolgen. Bei einem Maximum von `max_requests`, das innerhalb eines Zeitraums von `window_seconds` erlaubt ist, muss er zu jedem beliebigen Zeitpunkt korrekt bestimmen können, ob eine neue Anfrage erlaubt ist. 2. **Multiple Tiers**: Der Rate Limiter muss mehrere benannte Tiers unterstützen (z. B. `"free"`, `"standard"`, `"premium"`), jeweils mit eigener Konfiguration für `max_requests` und `window_seconds`. Clients werden bei der Registrierung einem Tier zugewiesen. 3. **Priority Queue for Deferred Requests**: Wenn eine Anfrage gedrosselt wird, sollte der Limiter sie nicht einfach ablehnen, sondern in eine pro-Tier-Prioritätswarteschlange einreihen. Jede Anfrage hat eine Ganzzahl-Priorität (kleinere Zahl = höhere Priorität). Der Limiter sollte eine Methode bereitstellen, die, wenn Kapazität frei wird, die wartende Anfrage mit der höchsten Priorität für einen gegebenen Client aus der Warteschlange entnimmt und verarbeitet. 4. **Thread Safety**: Alle Operationen (`allow_request`, `enqueue`, `dequeue`, `register_client`) müssen sicher sein, von mehreren Threads gleichzeitig aufgerufen zu werden. 5. **Cleanup**: Stellen Sie eine Methode bereit, um abgelaufene Tracking-Daten für Clients zu entfernen, die in den letzten `cleanup_threshold_seconds` (konfigurierbar) keine Anfragen gestellt haben. Ihre Implementierung sollte Folgendes enthalten: - Eine `RateLimiter`-Klasse mit der beschriebenen Schnittstelle. - Eine `Request`-Dataclass oder ein named tuple, das mindestens enthält: `client_id`, `timestamp`, `priority` und `payload`. - Korrekte Behandlung von Randfällen: doppelte Client-Registrierung, Anfragen für nicht registrierte Clients, leere Prioritätswarteschlangen, gleichzeitige Änderungen und Probleme mit der Genauigkeit der Uhr. Schreiben Sie außerdem ein Demonstrationsskript (im Block `if __name__ == "__main__"`), das: - Einen Rate Limiter mit mindestens zwei Tiers erstellt. - Mehrere Clients registriert. - Einen Burst von Anfragen aus mehreren Threads simuliert, wobei einige zugelassen und andere in die Warteschlange gestellt werden. - Zeigt, wie aufgeschobene Anfragen verarbeitet werden, wenn Kapazität frei wird. - Eine klare Ausgabe druckt, die die Abfolge der Ereignisse deutlich darstellt. Erläutern Sie Ihre Designentscheidungen in Kommentaren, insbesondere bezüglich Ihrer Implementierung des Sliding Window, Ihrer Wahl der Synchronisationsprimitiven und etwaiger Abwägungen, die Sie zwischen Genauigkeit und Leistung getroffen haben.

50
21 Mar 2026 08:40

Programmierung

OpenAI GPT-5 mini VS Anthropic Claude Sonnet 4.6

Einen Paket-Abhängigkeitsauflöser implementieren

Schreiben Sie eine Python-Funktion `resolve(requirements, package_index)`, die einen Abhängigkeitsauflösungsalgorithmus implementiert. Die Funktion soll zwei Argumente annehmen: 1. `requirements`: Eine Liste von Strings, wobei jeder String eine anfängliche Paket-Anforderung ist (z. B. `["A>=1.2.0", "B"]`). 2. `package_index`: Ein Dictionary, das alle verfügbaren Pakete repräsentiert. Die Schlüssel sind Paketnamen. Die Werte sind Dictionaries, in denen die Schlüssel Versions-Strings sind (z. B. '1.2.3') und die Werte Listen von Abhängigkeits-Anforderungs-Strings für diese Version sind. Ihre Funktion soll ein Dictionary zurückgeben, das jeden benötigten Paketnamen (einschließlich transitiver Abhängigkeiten) auf eine einzelne, aufgelöste Versions-String abbildet, die alle Beschränkungen erfüllt. Dies wird oft als "Lock-Datei" bezeichnet. Ihr Algorithmus muss in der Lage sein, transitive Abhängigkeiten und Versionskonflikte zu behandeln. Falls keine gültige Menge von Paketen gefunden werden kann, soll die Funktion eine `ValueError` mit einer klaren Nachricht werfen, die den Konflikt erklärt. Der Einfachheit halber können Sie annehmen: - Versionen folgen dem Semantic Versioning (z. B. '1.2.3'). - Anforderungs-Spezifizierer sind einer der folgenden: `==`, `!=`, `>=`, `<=`, `>`, `<`. Eine Anforderung ohne Spezifizierer (z. B. "B") impliziert, dass jede Version akzeptabel ist. - Ihre Lösung sollte darauf abzielen, für jedes Paket die jeweils neueste mögliche Version auszuwählen, die alle Beschränkungen erfüllt.

67
15 Mar 2026 08:52

Programmierung

OpenAI GPT-5 mini VS Anthropic Claude Haiku 4.5

Implementieren Sie einen Abhängigkeitsauflöser mit semantischer Versionierung

Ihre Aufgabe ist es, eine Funktion zu schreiben, die den Abhängigkeitsauflöser eines Paketmanagers simuliert. Die Funktion soll eine Liste aller verfügbaren Pakete, ein Zielpaket zur Installation und dessen Versionsanforderung entgegennehmen. Sie muss eine flache Liste von Paketen (Name und spezifische Version) zurückgeben, die installiert werden müssen, in einer gültigen topologischen Reihenfolge (Abhängigkeiten vor Abhängigen). Der Resolver muss SemVer (semantische Versionierung) Einschränkungen verarbeiten. Für diese Aufgabe müssen Sie nur exakte Versionen, Caret (`^`) und Tilde (`~`) Spezifizierer unterstützen. - `1.2.3`: Muss genau Version 1.2.3 sein. - `^1.2.3`: Erlaubt Versionen von 1.2.3 bis, aber nicht einschließlich, 2.0.0 (d.h. `>=1.2.3 <2.0.0`). - `~1.2.3`: Erlaubt Versionen von 1.2.3 bis, aber nicht einschließlich, 1.3.0 (d.h. `>=1.2.3 <1.3.0`). Ihre Implementierung muss: 1. Für jedes Paket die höchstmögliche Version auswählen, die alle von anderen Paketen im Abhängigkeitsbaum auferlegten Einschränkungen erfüllt. 2. Eine topologisch sortierte Liste von Paketen für die Installation erzeugen. 3. Fehlerfälle elegant behandeln und melden für: - Nicht auflösbare Versionskonflikte (z. B. wenn eine Abhängigkeit `^1.0.0` und eine andere `^2.0.0` desselben Pakets verlangt). - Zirkuläre Abhängigkeiten (z. B. Paket A hängt von B ab und B hängt von A ab). - Ein benötigtes Paket oder eine benötigte Version nicht verfügbar ist. Sie können jede Programmiersprache für Ihre Implementierung wählen. Definieren Sie die Funktionssignatur und Datenstrukturen nach eigenem Ermessen, machen Sie diese aber klar.

84
15 Mar 2026 06:11

Programmierung

OpenAI GPT-5 mini VS Google Gemini 2.5 Flash-Lite

Implementieren Sie einen Least Recently Used (LRU)-Cache

Implementieren Sie eine LRU (Least Recently Used) Cache-Datenstruktur in Python, die die folgenden Operationen unterstützt, jeweils mit durchschnittlicher Zeitkomplexität O(1): 1. `get(key)` — Gibt den mit dem Schlüssel verbundenen Wert zurück, falls er im Cache vorhanden ist, andernfalls -1. Der Zugriff auf einen Schlüssel markiert ihn als kürzlich verwendet. 2. `put(key, value)` — Fügt das Schlüssel-Wert-Paar ein oder aktualisiert es. Wenn der Cache seine Kapazität erreicht hat, entfernen Sie das am wenigsten kürzlich verwendete Element, bevor Sie das neue einfügen. Ihre Implementierung sollte eine Klasse namens `LRUCache` mit folgendem Interface sein: ``` cache = LRUCache(capacity) cache.put(key, value) result = cache.get(key) ``` Demonstrieren Sie Ihre Implementierung mit der folgenden Testsequenz: ``` cache = LRUCache(2) cache.put(1, 10) cache.put(2, 20) print(cache.get(1)) # Expected: 10 cache.put(3, 30) # Evicts key 2 print(cache.get(2)) # Expected: -1 cache.put(4, 40) # Evicts key 1 print(cache.get(1)) # Expected: -1 print(cache.get(3)) # Expected: 30 print(cache.get(4)) # Expected: 40 ``` Anforderungen: - Verwenden Sie NICHT `functools.lru_cache` oder `collections.OrderedDict`. Implementieren Sie die zugrunde liegende Datenstruktur selbst. - Verwenden Sie eine Kombination aus einer Hash-Map und einer doppelt verketteten Liste. - Fügen Sie klare Kommentare hinzu, die Ihren Ansatz erläutern. - Behandeln Sie Randfälle wie eine Kapazität von 0 oder 1. - Stellen Sie den vollständigen, ausführbaren Code einschließlich der obigen Testsequenz mit der erwarteten Ausgabe bereit.

92
12 Mar 2026 19:00

Verwandte Links

X f L