IT박스

난수 목록을 생성하는 방법은 무엇입니까?

itboxs 2021. 1. 6. 07:54
반응형

난수 목록을 생성하는 방법은 무엇입니까?


이것은 스칼라 질문 중 가장 덜 중요한 질문 일 수 있지만, 나를 괴롭 히고 있습니다. n 개의 난수 목록을 어떻게 생성합니까? 내가 지금까지 가지고있는 것 :

def n_rands(n : Int) = {
 val r = new scala.util.Random
 1 to n map { _ => r.nextInt(100) } 
}

어느 것이 작동하지만 나에게는 그다지 비 대해 보이지 않습니다. 나는 제안에 열려 있습니다.

편집하다

돌이켜 보면 재미 있고 분명 할만큼 관련성이 높기 때문에 다음과 같이 작동하는 것처럼 보입니다.

1 to 20 map r.nextInt

그러나 반환 된 목록에있는 각 항목의 인덱스는 마지막 항목의 상한이기도합니다. 첫 번째 숫자는 1보다 작아야하고 두 번째 숫자는 2보다 작아야합니다. 서너 번 실행했는데 "음, 결과는 항상 0으로 시작합니다 ..."


Don의 솔루션을 사용 하거나 다음을 수행 할 수 있습니다 .

Seq.fill(n)(Random.nextInt)

Random개체 를 만들 필요가 없습니다 . 위에서 설명한대로 기본 컴패니언 개체 Random을 사용할 수 있습니다.


어때 :

import util.Random.nextInt
Stream.continually(nextInt(100)).take(10)

귀하의 편집과 관련하여,

nextInt걸릴 수 Int있으므로, 위 임의의 숫자에 대한 바인드로 인수 1 to 20 map r.nextInt와 동일한 1 to 20 map (i => r.nextInt(i))오히려 더 유용한 컴파일 오류보다.

1 to 20 map (_ => r.nextInt(100))의도 한대로합니다. 그러나 그것은 Seq.fill당신이하는 일을 더 정확하게 나타 내기 때문에 사용 하는 것이 좋습니다.

참조 URL : https://stackoverflow.com/questions/9094820/how-to-generate-a-list-of-random-numbers

반응형