# 돈 놓고 돈 먹기 Math.random 부분에 왜 6을 곱하는지 모르겠습니다. 0에서 1사이니깐 5를 곱하고 1을 더해야 되는것 아닌가요?? 그리고 이걸 정수형태로 바꾸지 않아도 되는지 여쭤보고 싶습니다. #### CODE <a class='btn btn-default' href='/codes/56928'>Link</a> ``` public class Gamble { public static void main(String[] args) { double dollar = dice() + dice() + dice(); double won = exchange(dollar); System.out.printf("획득 금액: $%.2f(%.0f원)", dollar, won); } public static int dice() { /* Math.random() 메소드를 활용하여 1~6 사이의 정수를 반환하도록 하시오 */ return (int) Math.random() * 5 + 1; } public static double exchange(double dollar) { /* 입력받은 달러를 환전하여 반환 하시오 */ return dollar * 1082.25108; } } ``` #### INPUT ``` ``` #### OUPUT ``` 획득 금액: $3.00(3247원) ```
### Math.random()의 값을 x라 하면, x의 범위는 0 <= x < 1 인 실수입니다. 여기서 포인트는 1을 포함하지 않는다는 점인데요. 최대 0.999999999999 정도로 생각하면 좋습니다. 따라서 6x 의 범위는 0 <= 6x < 5.9999999 가 되고, (int) 6x 의 범위는 0 <= (int) 6x <= 5 인 정수가 됩니다. 여기에 주사위 값을 만들어야 하므로 1을 더해주면 원하는 주사위 값을 얻을 수 있습니다.