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.
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
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.
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.
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
RETO 5: “Promedio de calidad”
Calcular el promedio total de calidad de las 1000 pastillas.
Salida:
Promedio de calidad general: 72.38
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...
Ayuda:
Chuleta Java – Math, Random y String
🔹 Clase Math (no necesita crear objeto)
Usa directamente: Math.metodo()
| Método | Descripción | Ejemplo | Resultado |
|---|---|---|---|
Math.abs(x) | Valor absoluto | Math.abs(-5) | 5 |
Math.max(a,b) | Mayor de dos valores | Math.max(8,3) | 8 |
Math.min(a,b) | Menor de dos valores | Math.min(8,3) | 3 |
Math.pow(a,b) | Potencia (a^b) | Math.pow(2,3) | 8.0 |
Math.sqrt(x) | Raíz cuadrada | Math.sqrt(9) | 3.0 |
Math.round(x) | Redondea al entero más cercano | Math.round(3.6) | 4 |
Math.floor(x) | Redondea hacia abajo | Math.floor(3.9) | 3.0 |
Math.ceil(x) | Redondea hacia arriba | Math.ceil(3.1) | 4.0 |
Math.random() | Número aleatorio entre 0 y 1 | Math.random() | 0.0–0.999... |
Math.PI | Constante π | Math.PI | 3.14159… |
Math.E | Constante e | Math.E | 2.71828… |
Ejemplo práctico:
double area = Math.PI * Math.pow(5, 2);
🎲 Clase Random
Primero importa y crea el objeto:
import java.util.Random;
Random r = new Random();
| Método | Descripción | Ejemplo | Resultado |
|---|---|---|---|
r.nextInt(n) | Entero entre 0 y n-1 | r.nextInt(10) | 0–9 |
r.nextInt(max - min + 1) + min | Entero entre min y max | r.nextInt(21) + 80 | 80–100 |
r.nextDouble() | Decimal entre 0.0 y 1.0 | r.nextDouble() | 0.0–0.999... |
r.nextBoolean() | Verdadero o falso | r.nextBoolean() | true / false |
Ejemplo:
int dado = r.nextInt(6) + 1; // 1 a 6
🧵 Clase String
Recuerda: los String son objetos, y sus métodos se invocan sobre la variable:
texto.metodo()
| Método | Descripción | Ejemplo | Resultado |
|---|---|---|---|
length() | Longitud del texto | "Hola".length() | 4 |
charAt(i) | Carácter en posición i | "Hola".charAt(1) | 'o' |
toUpperCase() | Convierte a mayúsculas | "hola".toUpperCase() | "HOLA" |
toLowerCase() | Convierte a minúsculas | "HOLA".toLowerCase() | "hola" |
equals(cadena) | Compara textos (sensible a mayúsculas) | "Hola".equals("hola") | false |
equalsIgnoreCase(cadena) | Compara ignorando mayúsculas/minúsculas | "Hola".equalsIgnoreCase("hola") | true |
substring(inicio, fin) | Extrae parte del texto | "Java".substring(1,3) | "av" |
indexOf(cadena) | Posición de una subcadena | "Hola".indexOf("la") | 2 |
contains(cadena) | ¿Contiene la subcadena? | "Hola".contains("Ho") | true |
startsWith(prefijo) | ¿Empieza por…? | "Hola".startsWith("Ho") | true |
endsWith(sufijo) | ¿Termina en…? | "Hola".endsWith("la") | true |
trim() | Elimina espacios al inicio y final | " Hola ".trim() | "Hola" |
replace(a, b) | Sustituye texto | "Hola".replace("a","e") | "Hole" |
Ejemplo combinado:
String nombre = " Antonio ";
System.out.println(nombre.trim().toUpperCase());
⚗️ Extra para curiosos
Rango aleatorio con Math (sin Random):
int n = (int)(Math.random() * 21) + 80; // 80–100


![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)
![R3.2 [Solución] Programación-Bucles profe](https://laaventuradeaprender.com/wp-content/uploads/2025/12/profe.png)