2012-02-04 2 views
1

java.util.Random과 2d 배열을 사용하여 0과 1의 매트릭스를 생성하는 foll0wing 코드가 있습니다. 행렬에 행당 0과 1이 생길 확률을 정의하는 방법이 있는지 궁금합니다. 0과 1을 모두 생성 할 확률이 동일합니다.자바에서 0과 1의 매트릭스를 생성하면서 확률을 선택하십시오.

이 MATLAB 코드를 변환하여 자바와 동등한 행렬을 생성하고 싶습니다.

G= rand(10,20)<.5 

의견이나 제안이 있으십니까?

감사합니다, 바뱌

답변

1

배열에 숫자를 채우는 미리 정의 된 방법은 없지만 대신 각 요소 위에 lop을 수행하고 숫자를 할당해야합니다. 다음과 같은 내용 :

Random random = new Random(); 

for (int outerIndex = 0; outerIndex < matrix.length; outerIndex++) { 
    for (int innerIndex = 0; innerIndex < matrix[outerIndex].length; innerIndex++) { 
     if (random.nextDouble() < 0.5) { 
      matrix[outerIndex][innerIndex] = 1; 
     } else { 
      matrix[outerIndex][innerIndex] = 0; 
     } 
    } 
} 

여기서는 기본 난수 생성기가 충분하다고 가정합니다. 1 또는 0의 확률을 높이려면 0.5를 조정하십시오.

0

나는 모두 0과 1을 생성하는 동일한 확률을 갖고 싶어. 이후

Random R = new Random(); 
int zeroOrOne = r.nextInt() % 2; 

당신이 실제 분포를 통해 볼 수있는 주파수 테이블을 만들 수 있습니다

무작위이 사용하는 경우에 당신은 당신이 방금 경우의 차이를 발견하기가 매우 어렵다, 그러나 완벽하게 무작위로하지 않습니다 그러나 많은 샘플을 실행합니다.

관련 문제