inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

웹 게임을 만들며 배우는 자바스크립트

배열 map 메서드

Math.random()에 관해서

364

작성자 없음

작성한 질문수 0

0

안녕하세요^^ 오늘도 강의 감사히 듣고 있습니다.

강의에서 Math.random()은 진짜 랜덤이 아니라고 하셔서 인터넷을 검색해보니

Math.random()은 0과1사이의 uniform distribution을 따르기 때문에 Math.ceil(Math.random()*100)을 했을때 2자리 수가 한자릿수에 비해 더 나올확률이 높아진다는것을 알게 되었습니다.

(이 사이트를 통해서 알았습니다.

https://stackoverflow.com/questions/1062902/how-random-is-javascripts-math-random)

 

그래서 제가 스케일을 100,1000, 조정해봤을때 그 비율이 실제와같은지 한번 체크해보려고 코드를 짜봤는데요. 제 코드에서는 숫자별로 비율이 비슷하게 나와서 제가 코드를 잘못짠건지 혹은 다른부분이 이상한지 잘모르겠어서 여쭤봅니다. 항상 강의 감사히 듣고있습니다.

아래는 제 코드이고 시행횟수와, 최대숫자를 조정할수 있습니다.

감사합니다.

var 시행횟수 = 99999;
var 최대숫자 = 1000;
var 랜덤군 = [];


for(i=0;i<시행횟수;i+=1){ //랜덤군에 랜덤넘버 하나씩 채워넣기
랜덤군.push(Math.ceil(Math.random()*최대숫자));
}
console.log(랜덤군);


var count = [];
var 확률 = [];

for(j=1;j<최대숫자;j+=1){// 채워넣었던 숫자를 하나씩 카운트하고 시행횟수로 나눠 확률알아보기
count[j-1]=0;
for(var i = 0; i < 랜덤군.length; ++i){
if(랜덤군[i] == j)
count[j-1]+=1;
확률[j-1]=count[j-1]/시행횟수;
}
 
}

console.log(count);
console.log(확률);

javascript

답변 1

0

제로초(조현영)

이런 것은 진짜 매우 큰 숫자로, 여러 번 반복해서 통계를 내봐야 보입니다. 단 한번으로는 안 보여요. 그리고 링크하신 스택오버플로우는 질문이 좀 이상한 것 같습니다.

iput 입력글자 제한에러...

0

228

0

리팩토링 관련 질문입니다. (자스스톤)

0

277

1

카드 짝맞추기 react-native

0

342

0

필터 메소드 관련 질문입니다.

0

340

1

가위바위보 게임 질문드립니다~

0

205

1

자바스크립트 기초에 관해서 질문있습니다.

0

210

1

질문입니다.

1

360

1

이벤트 리스너 안에서 동작 질문드립니다.

0

328

2

질문드립니다.

0

192

0

안녕하세요 깊은 복사 부분에서 질문 있습니다.

0

246

1

document.createElement('')함수에서

0

251

2

안녕하세요 클로저 부분에서 질문 있습니다.

0

281

1

안녕하세요 제로초님

0

741

1

끝말잇기 화면에 출력 반복문을 이용해서 횟수 제한

0

247

1

안녕하세요 제로초님 질문있습니다

0

319

1

안녕하세요 강의 정말 잘시청하고있습니다.

0

278

3

?

0

154

1

틱택토 게임에서 게임이 끝나고

0

568

1

9 곱하는게 이해가 안 되요~

0

175

1

지뢰찾기 에러잡아내기에서 질문있습니다!

0

463

4

지뢰찾기 에러 관련 질문!

0

486

3

리팩토링에 관한 질문입니다.

0

246

2

Array/Object spread

0

206

1

지뢰찾기게임에서 Math.random() 질문

0

225

1