-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
getIndex 함수 관련
20.04.04 13:07 작성 조회수 173
0
안녕하세요 잘 보고 있습니다.
getIndex 함수의 for 문 안에서 반복시마다 max를 1씩 올려주는 이유는 무엇인가요?
답변을 작성해보세요.
0
김영보
지식공유자2020.04.04
파라미터의 min과 max가 모두 0일 때 값을 구하기 위해서입니다. 본 코드에서는 min: 0, max: 100을 지정하므로 ++를 제외해도 됩니다. 또한 ++max를 하면 100보다 큰 값이 구해질 수도 있으므로 ++max보다 max가 낫다고 할 수 있습니다.
정확하게 값을 구하는 목적이라면, tfjskorea.com에 머신러닝 책이 있으며 소스 코드 파일을 다운로드할 수 있습니다. 다운로드에web.js 파일이 있는데요, randomOne() 함수와 randomIndices() 함수가 있습니다만, 그것이 더 정확합니다. 아래의 코드입니다.
// decimal: 값의 소수 자릿수
randomOne(min, max, decimal = 0){
if (decimal === 0){
return Math.trunc((max - min) * Math.random()) + min;
};
const ten = 10**decimal;
return Math.trunc((max - min) * Math.random() * ten) / ten + min;
},
// notAllowDup: 인덱스의 중복 허용 여부
// true를 작성하면 인덱스 중복을 허용하지 않습니다.
randomIndices(min, max, many, notAllowDup){
if (min > max){
return [];
};
const values = [];
let count = 0;
while (count < many){
const index = this.randomOne(min, max);
if (notAllowDup && values.includes(index)){
continue;
};
values.push(index);
count++;
};
return values;
},
답변 1