Guía rápida de Leetcode 808: Servir sopa

Probabilidad de que la sopa A se agote antes que la B (más la mitad de empate) mediante programación dinámica y memorización, reduciendo a 25 mL y con atajo para n>4500.

16 ago 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Resumen: Se presentan dos sopas A y B con n mL cada una. En cada turno se selecciona al azar una de cuatro operaciones con probabilidad 0.25: servir 100 mL de A y 0 mL de B; servir 75 mL de A y 25 mL de B; servir 50 mL de A y 50 mL de B; servir 25 mL de A y 75 mL de B. El proceso termina cuando A o B se vacían. Si una operación pide más cantidad de la disponible, solo se sirve lo que queda. El objetivo es calcular la probabilidad de que A se vacíe antes que B más la mitad de la probabilidad de que ambas se vacíen en el mismo paso.

Intuicion: Cada turno reduce ambas cantidades y el resultado depende de cuál recipiente se agote primero o si ambos se agotan simultáneamente. Las cuatro operaciones generan una estructura probabilística en forma de árbol y el problema consiste en calcular el valor esperado recorriendo ese árbol. Es natural emplear memorización para almacenar resultados de subproblemas que se repiten. Para n grande, específicamente por encima de 4500 mL, el resultado converge muy cerca de 1.0, por lo que se puede devolver 1 como atajo.

Simplificacion: Para reducir el espacio de estados se trabaja con unidades de 25 mL. Es decir, se convierte n en m igual al techo de n dividido entre 25. De esta manera cada operación se representa por decrecimientos enteros en esas unidades y se limita el número de estados a calcular.

Enfoque: Se define una función p(a, b) que devuelve la probabilidad deseada partiendo de a unidades de A y b unidades de B. Casos base: si a es menor o igual que cero y b es menor o igual que cero retornar 0.5; si a es menor o igual que cero retornar 1; si b es menor o igual que cero retornar 0. Para un estado general p(a, b) es igual a 0.25 por la suma de las cuatro llamadas recursivas con los decrementos correspondientes. Se usa memorización con un arreglo bidimensional o un diccionario para cachear resultados y evitar recálculos.

Pseudocodigo: funcion p de a coma b: si a es menor o igual que cero y b es menor o igual que cero retornar 0.5. Si a es menor o igual que cero retornar 1. Si b es menor o igual que cero retornar 0. Si existe resultado en memo retornar resultado. Calcular resultado igual a 0.25 multiplicado por la suma de p con a menos 4 coma b; p con a menos 3 coma b menos 1; p con a menos 2 coma b menos 2; p con a menos 1 coma b menos 3. Guardar resultado en memo y retornar resultado. Funcion principal sopaServings con n: si n mayor que 4500 retornar 1. Calcular m igual al techo de n dividido entre 25. Retornar p de m coma m.

Versiones y notas de implementacion: En C++ se puede usar un arreglo double size 300 por 300 y la función recursiva p con los casos base y memorización. En JavaScript es práctico emplear un Map para memoizar claves concatenadas y una función recursiva dp. En Python conviene usar lru cache de functools para simplificar la memorización. En las tres implementaciones la conversión a unidades de 25 mL y el atajo para n mayor que 4500 mejoran rendimiento.

Complejidad temporal y espacial: El número de estados únicos es del orden de m al cuadrado, donde m es el techo de n entre 25. En el peor caso para n igual a 4500 eso corresponde aproximadamente a 300 por 300 lo que da alrededor de 90000 estados. La complejidad espacial es del mismo orden por el uso de la tabla de memorización bidimensional.

Reflexion final: Este ejercicio mezcla probabilidad y programación dinámica recursiva. Los elementos clave son agrupar cantidades en unidades de 25 mL para limitar el espacio de estados, usar memorización para evitar recomputación y aprovechar la convergencia para n grande. Es un problema recomendable para practicar memorización, razonamiento probabilístico y optimización del espacio de estados.

Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones tecnológicas para empresas. Ofrecemos software a medida, aplicaciones a medida, servicios de inteligencia artificial, ciberseguridad y consultoría en servicios cloud aws y azure. También desarrollamos servicios inteligencia de negocio, implementaciones de power bi, agentes IA y soluciones de ia para empresas que integran modelos de inteligencia artificial para optimizar procesos. Contamos con equipos expertos en inteligencia artificial, ciberseguridad y arquitecturas cloud para transformar ideas en productos escalables y seguros.

Contacto y servicios: Si necesitas proyectos de aplicaciones a medida, software a medida, consultoría en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, agentes IA, ia para empresas o implementaciones de power bi, Q2BSTUDIO puede ayudarte a diseñar, construir y desplegar soluciones adaptadas a tus necesidades empresariales.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat