(왕초보)JAVA 주사위 만들기에서
조회수 1044회
랜덤으로 주사위 2개 굴리고 그 값의 합을 구하는 법 추가로 n번 굴려서 그 값의 합을 구하는 법 풀어보려고 하는데 웹서핑 없이 해보려니까 결국 못하고있어요ㅜㅜ while문을 쓰는게 가장 효율적이겠죠???
1 답변
-
숙제는 스스로 해보시고 잘 모르겠다 하는 부분을 질문을 하세요.
자바 8 이상부터 함수형 언어를 사용하는 느낌으로 작성할 수 있습니다.
- jshell 은 9부터 사용할 수 있습니다.
아래의 코드는 1부터 6사이의 숫자중 10개를 랜덤하게 생성하고 그것들을 모두 더하는 코드입니다. 주사위가 2개니까 두번 sum한 결과를 더 했습니다.
jshell> import java.util.Random; jshell> Random r = new Random(); r ==> java.util.Random@14acaea5 jshell> r.ints(1, 7).limit(10).sum() + r.ints(1, 7).limit(10).sum() $3 ==> 81 jshell> r.ints(1, 7).limit(10).sum() + r.ints(1, 7).limit(10).sum() $4 ==> 62 jshell> r.ints(1, 7).limit(10).sum() + r.ints(1, 7).limit(10).sum() $5 ==> 72 jshell> r.ints(1, 7).limit(10).toArray() $6 ==> int[10] { 1, 2, 6, 1, 6, 6, 5, 3, 4, 1 }
주사위를 동시에 두개 던지는 느낌이라면...
아래의 코드는 동시에 숫자 두개를 얻어 더하는 것을 10번 반복합니다.
jshell> import java.util.Random; jshell> import java.util.stream.IntStream; jshell> r.ints(1, 7).parallel().limit(2).toArray() $21 ==> int[2] { 5, 5 } jshell> int totalSum = 0; jshell> IntStream.rangeClosed(1, 10).forEach(i->totalSum += r.ints(1, 7).parallel().limit(2).sum()) jshell> totalSum totalSum ==> 76
댓글 입력