Contando tazones de helado

En esta práctica de laboratorio, explorarás un problema clásico de Ciencias de la Computación: los subconjuntos.

En esta página, explorarás una introducción familiar a los subconjuntos: elegir sabores de helado.

Un subconjunto (subset) es una selección de elementos de un conjunto; puede ser ninguno, todos o cualquier número intermedio.

imagen de un candado Simplex: cinco botones numerados del 1 al 5 con una cerradura Hay muchos problemas que tienen que ver con subconjuntos. Por ejemplo,

Por ahora, todas las bolas de helado deben ser diferentes entre sí. No importa el orden de las bolas: un bol con vainilla y chocolate es lo mismo que un bol con chocolate y vainilla.
  1. ¿Cuántos tazones de dos bolas hay? Encuentra una forma sistemática de enumerarlos.
  2. Busca una manera de describir el problema utilizando la recursividad.
  3. "U8L3-Subjconjuntos"Crea un proyecto nuevo U8L3-Subconjuntos
  4. Es posible que necesite utilizar el bloque añadir.
    Crea un bloque que, dada una lista de entrada de longitud variable de sabores disponibles, reporte una lista con todos los tazones de dos bolas. (Dado que un tazón de dos bolas se representa como una lista de dos sabores, una lista de tazones es una lista de listas.)
El bloque que construiste para tazones de dos cucharadas puede ayudarte a construir un bloque para tazones de tres bolas.
  1. Crea un bloque que enumere todos los tazones de tres bolas, dada una lista de los sabores disponibles. Recuerda, el orden de las bolas no importa, así que piense en cómo podría evitar enumerar el mismo tazón más de una vez.
  2. Ese tazón tiene o no tiene chocolate.
    Generaliza para crear un bloque que enumere todos los tazones de n bolas, con una entrada adicional dando el número de bolas. ¡Esto definitivamente necesitará recursividad!
  1. Escribe un procedimiento que, dada una lista de sabores disponibles, reporte una lista de todos los tazones posibles sin importar el número de bolas.
  2. Elimina la restricción de que cada bola debe tener un sabor diferente: ahora se permite chocolate, chocolate y chocolate, y muchos más. (Ten en cuenta que, técnicamente, este problema ya no se trata de subconjuntos, porque, por definición, un conjunto no puede tener el mismo elemento dos veces).