자바스크립트 채택완료

var empty = new Array();

var same = new Array();

var count = 0;

for (var a = 0; a < 100; a++) {

        var result = Math.floor(Math.random() * 45) + 1;

        empty[a] = result; //empty = [a,b,c,..100]

    

}


 

for(var b=0; b<100; b++){

    for(var c=b+1; c<100; c++){

        if(empty[b]==empty[c])

        //0~45까지 숫자들 중에 100개를 랜덤으로 뽑아서 가장 많이 나온 숫자를 출력하고 싶은데 어떻게 해야할까요?

        

    }

    

}

0~45까지 숫자들 중에 100개를 랜덤으로 뽑아서 가장 많이 나온 숫자를 출력하고 싶은데 어떻게 해야할까요?

답변 3개

채택된 답변
+20 포인트

원하시는 것이 100개의 숫자 중, 가장 많이 나온 숫자를 구하는 것?? 맞나요?? ^^;;

랜덤이기 때문에 가장 많이 나온 숫자는 여러개 일 수 있을 것 같아요.

가장 많이 나온 숫자들은 아래 스크립트 참조하여 주세요.

콘솔log로 찍힌 결과를 확인하시면 될 것 같아요.

만약 가장 많이 나온 숫자 중 첫번째 한개를 구할 경우,

getAllKeys()의 if문에 break를 넣어 주세요.

 

도움이 되셨으면 좋겠습니다.

Copy
<script>

var counts = {};
var idx = 0;

for (var a = 0; a < 100; a++) {
    var num = Math.floor(Math.random() * 45) + 1;
    counts[num] = counts[num] ? counts[num] + 1 : 1;
}

function getAllKeys(arr, max_val) {
    let result = [];
    for (let key in arr) {
        if (arr[key] == max_val) {
            result.push(key);
            //break;
        }
    }
    return result;
}

var arrayAllMaxKeys = function(array){
    return getAllKeys(array, Math.max.apply(null, Object.values(array)));
}

//console.log(counts);
//console.log(arrayAllMaxKeys(counts)); 

 </script>
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

<script>

var data = new Array();

for(i=0; i<100; i++) {

    var ram = Math.random();

    var num = Math.floor( ram * 45 );

    var val = data[num];

    if(!val) val = 0;

    data[num] = parseInt(val) + 1;

    //document.write( data[num] + '<br>' );

}

for(var i=0;i<data.length;i++){ //배열 출력

    document.write(i + '=>' + data[i]+"<br>");

}

</script>

 

정렬 부분은 아래 참조..

https://stackoverrun.com/ko/q/4168733

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

실제로는 랜덤으로 하나의 숫자를 뽑는것과 동일한 효과가 있습니다.

for 문으로는 안되는데.. 이유는 모르겠네요..

Copy
$data = array();

 

$data[mt_rand(0,45)]++;

$data[mt_rand(0,45)]++;

$data[mt_rand(0,45)]++;

~~~~ 100개 나열 ~~~~~

$data[mt_rand(0,45)]++;

 

arsort($data);

print_r($data);

echo '<hr>';

echo key($data);
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

스크립트 였군요.. 죄송..^^;;

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고