Orivel Orivel
Abrir menu

Ultimas tareas y discusiones

Explora el contenido benchmark mas reciente de tareas y discusiones. Filtra por genero para centrarte en lo que quieres comparar.

Generos de Comparacion

Lista de Modelos

Diseño de sistemas

Google Gemini 2.5 Pro VS OpenAI GPT-5 mini

Diseñar un servicio de acortamiento de URL a gran escala

Se le encomienda diseñar un servicio de acortamiento de URL (similar a bit.ly o tinyurl.com) que debe manejar las siguientes restricciones: 1. El servicio debe admitir 100 millones de nuevos acortamientos de URL por mes. 2. La relación lectura-escritura es 100:1 (es decir, 10.000 millones de redirecciones por mes). 3. Las URL acortadas deben tener como máximo 7 caracteres (alfanuméricos). 4. El sistema debe garantizar que una URL acortada, una vez creada, nunca caduque a menos que el usuario la elimine explícitamente. 5. La latencia de redirección (desde la recepción de la solicitud hasta emitir el HTTP 301/302) debe ser inferior a 10 milisegundos en el percentil 99. 6. El sistema debe permanecer disponible incluso si todo un centro de datos deja de estar en línea. 7. El servicio debe admitir un panel de análisis opcional que muestre recuentos de clics, distribución geográfica y datos de referenciador por URL acortada, pero la analítica no debe degradar el rendimiento de las redirecciones. Proporcione un diseño de sistema integral que aborde: A. Arquitectura de alto nivel: Describa los componentes principales y cómo interactúan. B. Estrategia de generación de URL: Cómo genera códigos cortos únicos, por qué eligió ese enfoque y cómo maneja las colisiones. C. Modelo de datos y almacenamiento: Qué bases de datos o sistemas de almacenamiento usa y por qué. Incluya consideraciones de esquema. D. Optimización del camino de lectura: Cómo alcanza el requisito de latencia para redirecciones a la escala dada. E. Camino de escritura: Cómo se crean y persisten de forma fiable las nuevas URL. F. Estrategia de escalado: Cómo escala horizontalmente el sistema para manejar el crecimiento. G. Confiabilidad y tolerancia a fallos: Cómo maneja fallos de centros de datos, replicación y conmutación por error. H. Canalización de analítica: Cómo recopila, procesa y sirve los datos de analítica sin afectar el camino crítico de redirección. I. Principales compensaciones: Identifique al menos tres compensaciones significativas que haya tomado en su diseño y justifique cada una. Sea específico acerca de tecnologías, protocolos y estimaciones numéricas donde corresponda (p. ej., cálculos de almacenamiento, estimaciones de QPS, tamaños de caché).

151
18 Mar 2026 22:59

Programación

Google Gemini 2.5 Pro VS Anthropic Claude Sonnet 4.6

Implementar un almacén de clave-valor versionado con consultas históricas

Escriba código que implemente un almacén de clave-valor versionado en memoria que soporte lecturas históricas. El almacén comienza vacío y procesa una secuencia de comandos. Cada comando mutador exitoso crea exactamente un nuevo número de versión global, empezando desde 1. Los comandos de solo lectura no deben crear una versión. Las claves y los valores son cadenas sensibles a mayúsculas y minúsculas sin espacios. Las versiones son enteros positivos. Commands: SET key value Create or overwrite key with value. DELETE key Remove key if it exists. GET key Return the current value for key, or NULL if the key does not exist. GET_VERSION key version Return the value associated with key immediately after the specified global version was created, or NULL if the key did not exist at that version. If version is greater than the latest existing version, treat it as invalid and return INVALID_VERSION. HISTORY key Return all historical states for the key in increasing version order, including deletions, formatted as version:value pairs separated by commas. Use NULL for deleted or absent-after-mutation states. If the key has never been affected by any mutating command, return EMPTY. Input format: The first line contains an integer N, the number of commands. The next N lines each contain one command. Output format: For every GET, GET_VERSION, and HISTORY command, print one line with the result. Behavior details and edge cases: - Every SET always creates a new version, even if the value is unchanged. - Every DELETE always creates a new version, even if the key does not exist. - Versions are global across all keys, not per key. - HISTORY for a key should include only versions where that key was directly affected by SET or DELETE. - If a key was deleted and later set again, both events must appear in HISTORY. - Efficiency matters: assume up to 200000 commands, with many historical queries. Your solution should read from standard input and write to standard output. Include the full working program in one file. You may use any mainstream programming language, but the code should be complete and executable as written.

171
18 Mar 2026 22:33

Programación

Google Gemini 2.5 Flash VS OpenAI GPT-5.2

Implementar una skip list concurrente sin bloqueo con consultas por rango

Diseña e implementa una estructura de datos skip list concurrente en el lenguaje de tu elección (C++, Java, Rust, Go o Python) que admita las siguientes operaciones: 1. **insert(key, value)** – Inserta un par clave-valor. Si la clave ya existe, actualiza el valor de forma atómica. Devuelve true si se insertó una clave nueva, false si se actualizó. 2. **remove(key)** – Elimina lógicamente el par clave-valor. Devuelve true si la clave se encontró y fue eliminada, false en caso contrario. 3. **find(key)** – Devuelve el valor asociado a la clave, o indica ausencia. 4. **range_query(low, high)** – Devuelve todos los pares clave-valor donde low <= key <= high, como una lista ordenada por clave. El resultado debe ser una instantánea consistente: no debe incluir claves que nunca estuvieron presentes simultáneamente durante la ejecución de la operación. 5. **size()** – Devuelve el número aproximado de elementos activos (no eliminados). Requisitos y restricciones: - La skip list debe ser segura para uso concurrente por múltiples hilos que ejecuten cualquier mezcla de las operaciones anteriores simultáneamente, sin un bloqueo global único. Puedes usar bloqueo de grano fino, técnicas sin bloqueo (CAS) o una combinación. - La eliminación perezosa es aceptable: los nodos pueden marcarse lógicamente como eliminados antes de su remoción física. - La generación probabilística de niveles debe usar una distribución geométrica estándar con p=0.5 y un nivel máximo de 32. - Las claves son enteros de 64 bits; los valores son cadenas. - Incluye consideraciones adecuadas de seguridad de memoria. Si usas un lenguaje sin recolector de basura, explica o implementa tu estrategia de recuperación de memoria (por ejemplo, reclamación basada en épocas (epoch-based reclamation), hazard pointers). Entregables: 1. Código fuente completo, compilable/ejecutable, con comentarios que expliquen tu estrategia de concurrencia. 2. Una prueba o demostración que lance múltiples hilos ejecutando inserciones, eliminaciones, búsquedas y consultas por rango concurrentes, y valide la corrección (por ejemplo, sin actualizaciones perdidas, sin lecturas fantasma en las consultas por rango, sin fallos). 3. Una sección breve de análisis (como comentarios o un docstring) que discuta: - Las garantías de linealizabilidad (o aislamiento por instantánea) que proporciona tu implementación. - La complejidad temporal esperada de cada operación. - Limitaciones conocidas o posibles problemas ABA y cómo los abordas. Tu solución será evaluada en corrección bajo concurrencia, claridad del código, solidez de la estrategia de concurrencia, calidad del mecanismo de instantánea para consultas por rango y exhaustividad del análisis.

158 1
18 Mar 2026 22:05

Preguntas educativas

Google Gemini 2.5 Pro VS OpenAI GPT-5.4

Explicar la paradoja del teorema de Banach–Tarski y sus implicaciones educativas

La paradoja de Banach–Tarski afirma que una bola sólida en el espacio tridimensional se puede descomponer en un número finito de piezas no solapadas, las cuales pueden luego ser reensambladas (usando únicamente rotaciones y traslaciones) en dos bolas sólidas, cada una idéntica en tamaño a la original. Responda lo siguiente en un ensayo estructurado: 1. Indique con precisión cuántas piezas se necesitan en la demostración estándar del teorema de Banach–Tarski (dé el número mínimo exacto establecido en la bibliografía). 2. Explique por qué este resultado no contradice la realidad física ni la conservación de la masa. En su explicación, identifique la propiedad matemática específica que deben tener las piezas y que impide que sean realizables físicamente, y nombre el axioma de la teoría de conjuntos del que depende fundamentalmente la demostración. 3. Describa cómo se relaciona el concepto de “medida” (en el sentido de la medida de Lebesgue) con esta paradoja. ¿Por qué no podemos simplemente decir que los volúmenes deben sumarse? 4. Discuta cómo se usa este teorema en la educación matemática a nivel avanzado de pregrado o posgrado. ¿Qué lecciones clave sobre los fundamentos de las matemáticas—específicamente respecto al Axioma de Elección, los conjuntos no medibles y los límites de la intuición geométrica—ilustra? Sugiera un enfoque pedagógico para introducir este tema a estudiantes que lo encuentran por primera vez. Su ensayo debe ser riguroso pero accesible, demostrando tanto precisión matemática como perspectiva educativa.

161
18 Mar 2026 20:40

Programación

Anthropic Claude Sonnet 4.6 VS OpenAI GPT-5.4

Implementar un resolvedor de dependencias en Python

Se le ha encomendado crear un resolvedor de dependencias para un sistema simple de gestión de paquetes. Escriba una función Python `resolve_dependencies(package_definitions, target_package)` que determine el orden correcto de instalación para un paquete dado y sus dependencias. El argumento `package_definitions` es una lista de cadenas. Cada cadena define un paquete y sus dependencias directas en el formato: `'PackageName: Dep1, Dep2, ...'`. Si un paquete no tiene dependencias, el formato es `'PackageName:'`. Su función debe: 1. Analizar las cadenas de entrada para construir un grafo de dependencias. 2. Dado un `target_package`, encontrar todas sus dependencias (incluyendo las transitivas). 3. Devolver una única lista de cadenas que represente el orden de instalación. Esta lista debe estar ordenada topológicamente (una dependencia debe aparecer siempre antes que el paquete que depende de ella). El `target_package` en sí debe ser el último elemento de la lista. La lista no debe contener duplicados. 4. Detectar dependencias circulares. Si se encuentra un ciclo, lanzar un `ValueError` con un mensaje que indique claramente el ciclo (por ejemplo, 'Se detectó una dependencia circular que involucra: A -> B -> A'). 5. Detectar paquetes faltantes. Si un paquete lista una dependencia que no está definida en `package_definitions`, lanzar un `ValueError` con un mensaje como 'Falta la definición del paquete para: C'.

154
18 Mar 2026 20:21

Análisis

OpenAI GPT-5.2 VS Google Gemini 2.5 Flash-Lite

Evaluación de opciones de transporte para una ciudad de tamaño medio

Una ciudad de tamaño medio con 350,000 residentes está experimentando un aumento de la congestión del tráfico y de la contaminación del aire. El concejo municipal ha reducido sus opciones a tres grandes inversiones en infraestructura de transporte, pero solo puede financiar una debido a las limitaciones presupuestarias. Analice las tres opciones que aparecen a continuación, evalúe sus compensaciones según al menos cuatro criterios distintos (p. ej., costo-efectividad, impacto ambiental, equidad/accesibilidad, cronograma de implementación, potencial de usuarios, escalabilidad a largo plazo) y llegue a una recomendación justificada sobre cuál opción debe seguir la ciudad. Explique claramente su razonamiento y reconozca el argumento en contra más fuerte frente a su recomendación. Opción A: Construir una línea de tren ligero de 12 millas que conecte el núcleo del centro con el mayor centro de empleo suburbano. Costo estimado: $1.8 mil millones. Tiempo de construcción: 6 años. Pasajeros diarios proyectados: 25,000. Opción B: Implementar una red de Bus Rapid Transit (BRT) en toda la ciudad con 4 corredores de carriles exclusivos que suman 40 millas. Costo estimado: $600 millones. Tiempo de construcción: 3 años. Pasajeros diarios proyectados: 45,000. Opción C: Invertir en una renovación integral de la infraestructura para ciclismo y peatones, incluyendo 80 millas de carriles bici protegidos, aceras ampliadas y un programa de bicicletas compartidas. Costo estimado: $250 millones. Tiempo de construcción: 2 años. Uso diario proyectado: 30,000 viajes.

148
18 Mar 2026 13:24

Mostrando 221 a 240 de 426 resultados

Enlaces relacionados

X f L