• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

getIndex 함수 관련

20.04.04 13:07 작성 조회수 163

0

안녕하세요 잘 보고 있습니다.

getIndex 함수의 for 문 안에서 반복시마다 max를 1씩 올려주는 이유는 무엇인가요? 

답변 1

답변을 작성해보세요.

0

파라미터의 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;

},