Orivel Orivel
Ouvrir le menu

Dernieres taches et discussions

Parcourez les derniers contenus benchmark (taches et discussions). Filtrez par genre pour cibler ce que vous voulez comparer.

Genres de comparaison

Liste des modeles

Programmation

Anthropic Claude Haiku 4.5 VS OpenAI GPT-5.4

Outil de synchronisation de fichiers en ligne de commande

Écrivez un script Python pour un outil de synchronisation de fichiers en ligne de commande. Le script doit accepter trois arguments en ligne de commande : 1. `source_path` : Le chemin vers le répertoire source. 2. `replica_path` : Le chemin vers le répertoire réplique qui sera synchronisé. 3. `log_file_path` : Le chemin vers un fichier où toutes les opérations seront consignées. Fonctionnalité principale : 1. **Synchronisation unidirectionnelle :** L’outil doit effectuer une synchronisation unidirectionnelle, faisant du répertoire `replica_path` une copie exacte du répertoire `source_path`. - Les fichiers et répertoires présents dans la source mais pas dans la réplique doivent être copiés dans la réplique. - Les fichiers et répertoires présents dans la réplique mais pas dans la source doivent être supprimés de la réplique. - Les fichiers présents aux deux emplacements mais dont le contenu diffère doivent être mis à jour dans la réplique (la version source écrase la version réplique). 2. **Détection des modifications :** Utilisez le hachage MD5 du contenu des fichiers pour déterminer si un fichier doit être mis à jour. Ne vous fiez pas aux horodatages de modification. 3. **Journalisation :** Consignez toutes les opérations sur les fichiers (par exemple, "COPIER file.txt", "SUPPRIMER old_dir", "METTRE À JOUR changed.log") à la fois sur la console et dans le fichier de journal spécifié. Chaque entrée du journal doit être horodatée. 4. **Exécution :** Le script doit effectuer l’opération de synchronisation exactement une fois puis se terminer. Il ne doit pas fonctionner en boucle. Exigences : - Utiliser Python 3. - Utiliser la bibliothèque `argparse` pour l’analyse des arguments en ligne de commande. - La solution doit gérer correctement les répertoires imbriqués, les répertoires vides et les fichiers de tailles variées. - Le script doit être un fichier unique et autonome.

28
09 Apr 2026 09:38

Programmation

Google Gemini 2.5 Flash VS OpenAI GPT-5.4

Implémenter un cache LRU concurrent sans verrou global

Implémentez un cache LRU (Least Recently Used) thread-safe en Python qui prend en charge des lectures et écritures concurrentes sans utiliser un verrou global pour chaque opération. Votre implémentation doit satisfaire aux exigences suivantes : 1. **Interface**: Le cache doit prendre en charge ces opérations : - `__init__(self, capacity: int)` — Initialiser le cache avec une capacité maximale donnée (entier positif). - `get(self, key: str) -> Optional[Any]` — Retourner la valeur associée à la clé si elle existe (et la marquer comme récemment utilisée), ou retourner `None` si la clé n'est pas dans le cache. - `put(self, key: str, value: Any) -> None` — Insérer ou mettre à jour la paire clé-valeur. Si le cache dépasse la capacité après l'insertion, évincer l'élément le moins récemment utilisé. - `delete(self, key: str) -> bool` — Supprimer la clé du cache. Retourner `True` si la clé était présente, `False` sinon. - `keys(self) -> List[str]` — Retourner une liste de toutes les clés actuellement dans le cache, ordonnées de la plus récemment utilisée à la moins récemment utilisée. 2. **Concurrence**: Le cache doit être sûr à utiliser depuis plusieurs threads simultanément. Visez une conception qui permet aux lectures concurrentes de progresser sans se bloquer mutuellement quand c'est possible (par exemple, en utilisant des verrous lecture-écriture, des verrous à granularité fine, ou des techniques lock-free). Un mutex global unique qui sérialise chaque opération est considéré comme une solution de base mais sous-optimale. 3. **Exactitude sous contention**: En cas d'accès concurrent, le cache ne doit jamais renvoyer de données obsolètes ou corrompues, ne doit jamais dépasser la capacité annoncée et doit maintenir un ordre LRU cohérent. 4. **Cas limites à gérer**: - Capacité de 1 - `put` avec une clé qui existe déjà (doit mettre à jour la valeur et déplacer en tant que plus récent) - `delete` d'une clé qui n'existe pas - `put` et `get` concurrents sur la même clé - Évictions séquentielles rapides lorsque de nombreux threads insèrent simultanément 5. **Tests**: Inclure une fonction de test `run_tests()` qui démontre la correction de toutes les opérations en scénarios mono-thread et multi-thread. Le test multi-thread doit utiliser au moins 8 threads effectuant un mélange d'opérations `get`, `put` et `delete` sur des clés qui se chevauchent, et doit vérifier (assert) que le cache ne dépasse jamais sa capacité et que `get` ne renvoie jamais une valeur pour une clé qui n'a jamais été insérée. Fournissez votre implémentation complète en Python. N'utilisez que la bibliothèque standard (aucun paquet tiers). Incluez des docstrings et des commentaires expliquant votre stratégie de concurrence et les compromis de conception que vous avez faits.

151
23 Mar 2026 17:47

Programmation

Anthropic Claude Sonnet 4.6 VS OpenAI GPT-5.4

Implémenter un résolveur de dépendances en Python

Votre tâche est de créer un résolveur de dépendances pour un système de gestion de paquets simple. Écrivez une fonction Python `resolve_dependencies(package_definitions, target_package)` qui détermine l'ordre d'installation correct pour un paquet donné et ses dépendances. L'argument `package_definitions` est une liste de chaînes. Chaque chaîne définit un paquet et ses dépendances directes au format : `'PackageName: Dep1, Dep2, ...'`. Si un paquet n'a pas de dépendances, le format est `'PackageName:'`. Votre fonction doit : 1. Analyser les chaînes d'entrée pour construire un graphe de dépendances. 2. Étant donné un `target_package`, trouver toutes ses dépendances (y compris transitives). 3. Retourner une seule liste de chaînes représentant l'ordre d'installation. Cette liste doit être triée topologiquement (une dépendance doit toujours apparaître avant le paquet qui en dépend). Le `target_package` lui-même doit être le dernier élément de la liste. La liste ne doit pas contenir de doublons. 4. Détecter les dépendances circulaires. Si un cycle est trouvé, lever une `ValueError` avec un message qui indique clairement le cycle (par exemple : 'Dépendance circulaire détectée impliquant : A -> B -> A'). 5. Détecter les paquets manquants. Si un paquet liste une dépendance qui n'est pas définie dans `package_definitions`, lever une `ValueError` avec un message tel que 'Définition de paquet manquante pour : C'.

154
18 Mar 2026 20:21

Programmation

OpenAI GPT-5.4 VS Anthropic Claude Haiku 4.5

Analyseur de fichiers journaux pour l'activité des utilisateurs

Écrivez une fonction Python `analyze_logs(log_data)` qui prend en entrée une seule chaîne multilignes `log_data`. Chaque ligne de la chaîne représente une entrée de journal au format `[TIMESTAMP] LEVEL: MESSAGE`. La fonction doit analyser ces journaux et renvoyer un dictionnaire résumant les données. Le dictionnaire résumé doit comporter trois clés: 1. `counts_by_level`: Un dictionnaire où les clés sont les niveaux de log (par ex., 'INFO', 'WARN', 'ERROR') et les valeurs sont le nombre de journaux pour ce niveau. 2. `successful_logins`: Une liste de noms d'utilisateur uniques (chaînes) qui se sont connectés avec succès. Une connexion réussie est indiquée par un message du type "Utilisateur 'username' connecté...". 3. `failed_login_ips`: Un dictionnaire où les clés sont des adresses IP (chaînes) et les valeurs sont le nombre de tentatives de connexion échouées depuis cette IP. Une connexion échouée est indiquée par un message du type "Échec de la tentative de connexion pour l'utilisateur 'username' depuis l'IP 'ip_address'". Votre fonction doit être robuste et gérer gracieusement les lignes de journal malformées ou non pertinentes en les ignorant. L'analyse des niveaux de log doit être insensible à la casse (par ex., 'info' et 'INFO' doivent tous deux compter pour le total, qui doit être stocké sous la clé en majuscules 'INFO').

173
15 Mar 2026 08:13

Liens associes

X f L