Si, como sospecho, la OP necesita un rango inclusivo en ambos extremos: necesita tanto los números 150 y 450, hay un error de rango en las respuestas que he visto hasta ahora.
Math.random() devuelve un número entre 0.0 (inclusive) y 1.0 (exclusivo). Si desea un número entre 15 y 45 (ambos inclusive), su rango de valores es en realidad (45 - 15 + 1) ... es decir, un total de 31 valores.
El código correcta debe ser:
int w = ((int)(((45 - 15 + 1) * random()) + 15)) * 10;
(45 - 15 + 1) * random() = [0.0..30.999999)
[0..31) + 15 = [15,0 .. 45.999999)
(int) [15.0..46.0) = [15..45] - la conversión entera es un truncamiento, no un redondeo
[15..45] * 10 = {150, 160, 170, 180, ..., 440, 450}
OMG. Parece un montón de respuestas. :) – ivorykoder
@Greg D - No hay nada en esto que me huela a la tarea. Además, esto está lejos de ser una pregunta "dame el código". El OP obviamente tiene algo que funciona ... solo necesitaba el último paso. Ciertamente, no hay razón para volver a traer la etiqueta 'olores-como-tarea'. –
sí, es tarea ... ¿Hay algo mal con eso teniendo en cuenta que estoy demostrando que hice un poco de mi propio trabajo? – Cheesegraterr