Contenido
Walter White y Jesse Pinkman han cocinado 1000 pastillas de «mentaanfetamienta» en su caravana.
Cada pastilla tiene una calidad aleatoria entre 0 y 100.
El “señor del pollo” (Gus Fring) solo acepta aquellas con calidad mayor o igual que 90.
Base común: generar calidad 0–100
Usaremos:
Random r = new Random(); int calidad = r.nextInt(101); // 0..100 (incluye 100)
RETO 1: “El recuento del lote”
Calcular cuántas pastillas tienen una calidad superior a 90.
Pistas:
- Usa
Randompara generar números del 0 al 100. - Usa un
forpara simular las 1000 pastillas. - Usa un contador para las “buenas”.
Ejemplo de salida:
Pastillas totales: 1000
De calidad superior: 128
Objetivo: de 1000 pastillas, contar cuántas tienen calidad > 90 (ojo: tu historia dice “≥90”, pero el reto 1 pide “superior a 90” → >90).
Idea
- Bucle
forde 1 a 1000 - Generar calidad
- Si
calidad > 90, incrementamos contador
Código
import java.util.Random;
public class Reto1RecuentoLote {
public static void main(String[] args) {
Random r = new Random();
int total = 1000;
int buenas = 0;
for (int i = 1; i <= total; i++) {
int calidad = r.nextInt(101); // 0..100
if (calidad > 90) { // superior a 90
buenas++;
}
}
System.out.println("Pastillas totales: " + total);
System.out.println("De calidad superior: " + buenas);
}
}
RETO 2: “Hasta lograr la receta perfecta”
Walter repite la cocción hasta que consiga una pastilla con calidad 100.
Pistas:
- Genera números aleatorios entre 0 y 100.
- Detén el bucle cuando salga 100.
- Muestra cuántos intentos necesitó.
Ejemplo:
¡Perfecta! Calidad 100 obtenida tras 57 intentos.
Objetivo: repetir intentos hasta que salga calidad 100, mostrar cuántos intentos.
Idea
- Bucle
whileodo-while - Contador de intentos
- Se para cuando
calidad == 100
Código
import java.util.Random;
public class Reto2RecetaPerfecta {
public static void main(String[] args) {
Random r = new Random();
int intentos = 0;
int calidad;
do {
calidad = r.nextInt(101);
intentos++;
} while (calidad != 100);
System.out.println("¡Perfecta! Calidad 100 obtenida tras " + intentos + " intentos.");
}
}
Por qué do-while: garantiza al menos un intento (tiene sentido aquí).
RETO 3: “La producción nocturna”
Walter y Jesse producen pastillas hasta llegar a 1000 unidades buenas (≥90).
Muestra cuántas totales han hecho (incluyendo las malas).
Ejemplo:
Para conseguir 1000 pastillas buenas, produjeron un total de 8732.
Objetivo: producir hasta conseguir 1000 buenas (≥90), y mostrar cuántas totales se produjeron.
Idea
buenasllega a 1000totalescuenta todas, buenas y malas- Condición buena:
calidad >= 90
Código
import java.util.Random;
public class Reto3ProduccionNocturna {
public static void main(String[] args) {
Random r = new Random();
int buenas = 0;
int totales = 0;
while (buenas < 1000) {
int calidad = r.nextInt(101);
totales++;
if (calidad >= 90) {
buenas++;
}
}
System.out.println("Para conseguir 1000 pastillas buenas, produjeron un total de " + totales + ".");
}
}
RETO 4: “El análisis por lotes”
Dividir la producción en 10 lotes de 100 pastillas y mostrar cuántas buenas hay en cada lote.
Salida esperada:
Lote 1 → 13 pastillas buenas
Lote 2 → 8 pastillas buenas
...
Lote 10 → 11 pastillas buenas
Objetivo: 10 lotes de 100, contar buenas (≥90) por lote.
Idea
- Bucle externo: lotes 1..10
- Bucle interno: 100 pastillas
- Contador
buenasLotereiniciado en cada lote
Código
import java.util.Random;
public class Reto4AnalisisPorLotes {
public static void main(String[] args) {
Random r = new Random();
int lotes = 10;
int tamLote = 100;
for (int lote = 1; lote <= lotes; lote++) {
int buenasLote = 0;
for (int i = 1; i <= tamLote; i++) {
int calidad = r.nextInt(101);
if (calidad >= 90) {
buenasLote++;
}
}
System.out.println("Lote " + lote + " \u2192 " + buenasLote + " pastillas buenas");
}
}
}
RETO 5: “Promedio de calidad”
Calcular el promedio total de calidad de las 1000 pastillas.
Salida:
Promedio de calidad general: 72.38
Objetivo: promedio de calidad de 1000 pastillas.
Idea
- Acumulador
sumaCalidades - Tras el bucle:
promedio = suma / total - Para mostrar con 2 decimales:
System.out.printf
Código
import java.util.Random;
public class Reto5PromedioCalidad {
public static void main(String[] args) {
Random r = new Random();
int total = 1000;
int sumaCalidades = 0;
for (int i = 1; i <= total; i++) {
int calidad = r.nextInt(101);
sumaCalidades += calidad;
}
double promedio = (double) sumaCalidades / total;
System.out.printf("Promedio de calidad general: %.2f%n", promedio);
}
}
Detalle clave: el casteo a double evita división entera.
RETO 6 (extra): “La inspección de Gus Fring”
Genera pastillas hasta tener 500 buenas, pero cada vez que salgan 50 malas seguidas, muestra:
🔥 Gus Fring sospecha del laboratorio...
Objetivo: generar pastillas hasta tener 500 buenas (≥90), pero cada vez que haya 50 malas seguidas, imprimir:
Gus Fring sospecha del laboratorio...
Idea
- Contador
buenashasta 500 - Contador
malasSeguidasque:- aumenta si sale mala (<90)
- se reinicia a 0 si sale buena
- Cuando
malasSeguidas == 50, avisamos y reiniciamos (o seguimos contando, tú eliges; aquí reiniciamos para no spamear).
Código
import java.util.Random;
public class Reto6InspeccionGusFring {
public static void main(String[] args) {
Random r = new Random();
int buenas = 0;
int totales = 0;
int malasSeguidas = 0;
while (buenas < 500) {
int calidad = r.nextInt(101);
totales++;
if (calidad >= 90) {
buenas++;
malasSeguidas = 0; // racha de malas se rompe
} else {
malasSeguidas++;
}
if (malasSeguidas == 50) {
System.out.println("🔥 Gus Fring sospecha del laboratorio...");
malasSeguidas = 0; // reiniciamos para volver a detectar otra racha de 50
}
}
System.out.println("Buenas conseguidas: " + buenas);
System.out.println("Pastillas producidas en total: " + totales);
}
}


![R7 [Solución] - Guerra por el Sistema Solar: Tierra, Marte y el Cinturón” (The Expanse) Captura de pantalla 2025-12-22 a las 20.54.03](https://laaventuradeaprender.com/wp-content/uploads/2025/12/Captura-de-pantalla-2025-12-22-a-las-20.54.03-1.png)






![R3.1 [Solución] - Programación-bucles profe](https://laaventuradeaprender.com/wp-content/uploads/2025/12/profe-2.png)