Orivel Orivel
Abrir menu

Ultimas tarefas e discussoes

Explore o conteudo benchmark mais recente de tarefas e discussoes. Filtre por genero para focar no que voce quer comparar.

Generos de Comparacao

Lista de Modelos

Design de sistemas

Google Gemini 2.5 Pro VS OpenAI GPT-5 mini

Projetar um serviço de encurtamento de URLs em larga escala

Sua tarefa é projetar um serviço de encurtamento de URLs (semelhante ao bit.ly ou tinyurl.com) que deve atender às seguintes restrições: 1. O serviço deve suportar 100 milhões de novos encurtamentos de URL por mês. 2. A razão leitura:gravação é 100:1 (ou seja, 10 bilhões de redirecionamentos por mês). 3. URLs encurtadas devem ter no máximo 7 caracteres (alfanuméricos). 4. O sistema deve garantir que uma URL encurtada, uma vez criada, nunca expire a menos que seja explicitamente excluída pelo usuário. 5. A latência de redirecionamento (do recebimento da requisição até a emissão do HTTP 301/302) deve ser inferior a 10 milissegundos no percentil 99. 6. O sistema deve permanecer disponível mesmo se um data center inteiro ficar offline. 7. O serviço deve suportar um painel de análise opcional mostrando contagens de clique, distribuição geográfica e dados de referenciador por URL encurtada, mas as análises não devem degradar o desempenho de redirecionamento. Forneça um projeto de sistema abrangente que aborde: A. Arquitetura de alto nível: Descreva os principais componentes e como eles interagem. B. Estratégia de geração de URL: Como você gera códigos curtos únicos, por que escolheu essa abordagem e como lida com colisões. C. Modelo de dados e armazenamento: Quais bancos de dados ou sistemas de armazenamento você usa e por quê. Inclua considerações de esquema. D. Otimização do caminho de leitura: Como você alcança o requisito de latência para redirecionamentos na escala exigida. E. Caminho de escrita: Como novas URLs são criadas e persistidas de forma confiável. F. Estratégia de escalonamento: Como o sistema escala horizontalmente para suportar crescimento. G. Confiabilidade e tolerância a falhas: Como você lida com falhas de data center, replicação e failover. H. Pipeline de analytics: Como você coleta, processa e serve os dados de analytics sem impactar o caminho crítico de redirecionamento. I. Principais trade-offs: Identifique pelo menos três trade-offs significativos que você fez no seu projeto e justifique cada um. Seja específico sobre tecnologias, protocolos e estimativas numéricas quando relevante (por exemplo, cálculos de armazenamento, estimativas de QPS, tamanhos de cache, análise do espaço de chaves de short-code).

151
18 Mar 2026 22:59

Programação

Google Gemini 2.5 Pro VS Anthropic Claude Sonnet 4.6

Implemente um armazenamento chave-valor versionado com consultas históricas

Escreva um código que implemente um armazenamento chave-valor versionado em memória com suporte a leituras históricas. O armazenamento começa vazio e processa uma sequência de comandos. Cada comando mutante bem-sucedido cria exatamente um novo número de versão global, começando em 1. Comandos somente de leitura não devem criar uma versão. Chaves e valores são strings sensíveis a maiúsculas/minúsculas sem espaços. Versões são inteiros positivos. Comandos: SET key value Cria ou sobrescreve a chave com o valor. DELETE key Remove a chave se ela existir. GET key Retorna o valor atual da chave, ou NULL se a chave não existir. GET_VERSION key version Retorna o valor associado à chave imediatamente após a criação da versão global especificada, ou NULL se a chave não existia nessa versão. Se version for maior que a última versão existente, trate-o como inválido e retorne INVALID_VERSION. HISTORY key Retorna todos os estados históricos da chave em ordem crescente de versões, incluindo deleções, formatados como pares version:value separados por vírgulas. Use NULL para estados deletados ou ausentes após uma mutação. Se a chave nunca foi afetada por qualquer comando mutante, retorne EMPTY. Formato de entrada: A primeira linha contém um inteiro N, o número de comandos. As próximas N linhas contêm cada uma um comando. Formato de saída: Para cada comando GET, GET_VERSION e HISTORY, imprima uma linha com o resultado. Detalhes de comportamento e casos limítrofes: - Cada SET sempre cria uma nova versão, mesmo que o valor não tenha mudado. - Cada DELETE sempre cria uma nova versão, mesmo se a chave não existir. - As versões são globais entre todas as chaves, não por chave. - HISTORY de uma chave deve incluir apenas as versões em que essa chave foi diretamente afetada por SET ou DELETE. - Se uma chave foi deletada e depois definida novamente, ambos os eventos devem aparecer em HISTORY. - Eficiência importa: assuma até 200000 comandos, com muitas consultas históricas. Sua solução deve ler da entrada padrão e escrever na saída padrão. Inclua o programa completo funcionando em um único arquivo. Você pode usar qualquer linguagem de programação mainstream, mas o código deve ser completo e executável como está escrito.

171
18 Mar 2026 22:33

Programação

Google Gemini 2.5 Flash VS OpenAI GPT-5.2

Implemente uma Skip List Concorrente Sem Bloqueios com Consultas por Intervalo

Design e implemente uma estrutura de dados skip list concorrente em uma linguagem de sua escolha (C++, Java, Rust, Go ou Python) que suporte as seguintes operações: 1. **insert(key, value)** – Insere um par chave-valor. Se a chave já existir, atualize o valor de forma atômica. Retorna true se uma nova chave foi inserida, false se foi atualizada. 2. **remove(key)** – Remove logicamente o par chave-valor. Retorna true se a chave foi encontrada e removida, false caso contrário. 3. **find(key)** – Retorna o valor associado à chave, ou indica ausência. 4. **range_query(low, high)** – Retorna todos os pares chave-valor onde low <= key <= high, como uma lista ordenada por chave. O resultado deve ser um snapshot consistente: não deve incluir chaves que nunca estiveram simultaneamente presentes durante a execução da operação. 5. **size()** – Retorna o número aproximado de elementos ativos (não deletados). Requisitos e restrições: - A skip list deve ser segura para uso concorrente por múltiplas threads realizando qualquer combinação das operações acima simultaneamente, sem um bloqueio global único. Você pode usar bloqueios de granularidade fina, técnicas sem bloqueio (CAS) ou uma combinação. - Exclusão preguiçosa é aceitável: nós podem ser marcados logicamente como deletados antes da remoção física. - A geração de nível probabilística deve usar uma distribuição geométrica padrão com p=0.5 e nível máximo de 32. - Chaves são inteiros de 64 bits; valores são strings. - Inclua considerações adequadas sobre segurança de memória. Se usar uma linguagem sem coleta de lixo, explique ou implemente sua estratégia de recuperação (por exemplo, recuperação baseada em épocas, hazard pointers). Entregáveis: 1. Código-fonte completo e compilável/executável com comentários explicando sua estratégia de concorrência. 2. Um teste ou demonstração que lance múltiplas threads realizando inserções, exclusões, buscas e consultas por intervalo concorrentes, e valide a correção (por exemplo, sem atualizações perdidas, sem leituras fantasmas em consultas por intervalo, sem travamentos). 3. Uma seção de análise breve (como comentários ou uma docstring) discutindo: - As garantias de linearizabilidade (ou isolamento por snapshot) que sua implementação fornece. - A complexidade de tempo esperada de cada operação. - Limitações conhecidas ou possíveis problemas ABA e como você os aborda. Sua solução será avaliada com base na correção sob concorrência, clareza do código, robustez da estratégia de concorrência, qualidade do mecanismo de snapshot para consultas por intervalo e completude da análise.

158 1
18 Mar 2026 22:05

Questões educacionais

Google Gemini 2.5 Pro VS OpenAI GPT-5.4

Explique o Paradoxo do Teorema de Banach–Tarski e suas Implicações Educacionais

O paradoxo de Banach–Tarski afirma que uma esfera sólida no espaço tridimensional pode ser decomposta em um número finito de peças disjuntas, que podem então ser reassembladas (usando apenas rotações e translações) em duas esferas sólidas, cada uma idêntica em tamanho à original. Responda ao seguinte em um ensaio estruturado: 1. Indique com precisão quantas peças são necessárias na prova padrão do teorema de Banach–Tarski (dê o número mínimo exato estabelecido na literatura). 2. Explique por que esse resultado não contradiz a realidade física ou a conservação da massa. Na sua explicação, identifique a propriedade matemática específica que as peças devem possuir que impede que sejam realizáveis fisicamente, e nomeie o axioma da teoria dos conjuntos do qual a prova depende fundamentalmente. 3. Descreva como o conceito de "medida" (no sentido da medida de Lebesgue) se relaciona com esse paradoxo. Por que não podemos simplesmente afirmar que os volumes devem somar? 4. Discuta como este teorema é usado no ensino de matemática em nível avançado de graduação ou de pós-graduação. Quais lições-chave sobre os fundamentos da matemática — especificamente em relação ao Axioma da Escolha, conjuntos não mensuráveis e os limites da intuição geométrica — ele ilustra? Sugira uma abordagem pedagógica para introduzir este tópico a estudantes que o encontram pela primeira vez. Seu ensaio deve ser rigoroso, mas acessível, demonstrando tanto precisão matemática quanto perspicácia pedagógica.

161
18 Mar 2026 20:40

Programação

Anthropic Claude Sonnet 4.6 VS OpenAI GPT-5.4

Implemente um resolvedor de dependências em Python

Sua tarefa é criar um resolvedor de dependências para um sistema simples de gerenciamento de pacotes. Escreva uma função Python `resolve_dependencies(package_definitions, target_package)` que determine a ordem correta de instalação para um dado pacote e suas dependências. O argumento `package_definitions` é uma lista de strings. Cada string define um pacote e suas dependências diretas no formato: `'PackageName: Dep1, Dep2, ...'`. Se um pacote não tiver dependências, o formato é `'PackageName:'`. Sua função deve: 1. Analisar as strings de entrada para construir um grafo de dependências. 2. Dado um `target_package`, encontrar todas as suas dependências (incluindo transitivas). 3. Retornar uma única lista de strings representando a ordem de instalação. Essa lista deve ser ordenada topologicamente (uma dependência deve sempre aparecer antes do pacote que depende dela). O próprio `target_package` deve ser o último item da lista. A lista não deve conter duplicatas. 4. Detectar dependências circulares. Se um ciclo for encontrado, levante um `ValueError` com uma mensagem que indique claramente o ciclo (por exemplo, 'Dependência circular detectada envolvendo: A -> B -> A'). 5. Detectar pacotes ausentes. Se um pacote lista uma dependência que não está definida em `package_definitions`, levante um `ValueError` com uma mensagem como 'Definição de pacote ausente para: C'.

154
18 Mar 2026 20:21

Análise

OpenAI GPT-5.2 VS Google Gemini 2.5 Flash-Lite

Avaliação de Opções de Transporte para uma Cidade de Médio Porte

Uma cidade de médio porte com 350.000 residentes está enfrentando aumento do congestionamento do tráfego e da poluição do ar. O conselho municipal reduziu suas opções para três grandes investimentos em infraestrutura de transporte, mas só pode financiar um devido a restrições orçamentárias. Analise as três opções abaixo, avalie suas compensações em pelo menos quatro critérios distintos (por exemplo, custo-efetividade, impacto ambiental, equidade/acessibilidade, cronograma de implementação, potencial de demanda, escalabilidade a longo prazo) e chegue a uma recomendação justificada sobre qual opção a cidade deve seguir. Explique claramente seu raciocínio e reconheça o argumento contrário mais forte à sua recomendação. Opção A: Construir uma linha de trem leve de 12 milhas conectando o centro da cidade ao maior polo de empregos suburbano. Custo estimado: $1,8 bilhão. Tempo de construção: 6 anos. Passageiros diários projetados: 25,000. Opção B: Implementar uma rede de Transporte Rápido por Ônibus (BRT) em toda a cidade com 4 corredores de faixas exclusivas totalizando 40 milhas. Custo estimado: $600 milhões. Tempo de construção: 3 anos. Passageiros diários projetados: 45,000. Opção C: Investir em uma reforma abrangente da infraestrutura para ciclismo e pedestres, incluindo 80 milhas de ciclovias protegidas, calçadas ampliadas e um programa de compartilhamento de bicicletas. Custo estimado: $250 milhões. Tempo de construção: 2 anos. Uso diário projetado: 30,000 viagens.

148
18 Mar 2026 13:24

Mostrando 221 a 240 de 426 resultados

Links relacionados

X f L