과제
2022.08.12/ Hw1
Math.random() 을 이용해서 1~45 사이의 난수를 6개 추출 하는 프로그램을 작성
조건 1.중복 되지 않는 값을 구해야함.
조건 2.구해진 값을 오름차순으로 정렬해서 출력
의도
Math 객체 함수 사용
난수발생 함수 사용
깃허브
https://github.com/kindacool/Hw/blob/main/HW20220812/20220812_hw1.html
코드
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script>
/* 과제. Math.random()을 이용해서 1~45 사이의 난수를 6개 추출 하는 프로그램을 작성
(조건 1.중복 되지 않는 값을 구해야함, 2.구해진 값을 오름차순으로 정렬해서 출력) */
// 배열 선언
var random = Array();
// 난수 발생, 중복검사, 정렬
for(var i = 0; i < 6; i++) {
random[i] = Math.ceil(Math.random() * 45); // 1 ~ 45 난수 발생
for(var j = 0; j < i; j++) {
// 중복검사
if(random[i] == random[j]){
i--;
break;
}
// 정렬
if(random[i] < random[j]) {
random.splice(j, 0, random[i])// 그 j의 자리에 넣어야함
random.pop(); // 그리고 맨 마지막의 random[i] 삭제
}
}
}
//출력
document.write("번호 : " + random + "<br>");
// document.write(random.sort() + "<br>"); 는 안된다.
</script>
</body>
</html>
출력
강사님 코드
<html>
<head>
<meta charset="UTF-8">
<title> lotto </title>
<script>
function find(){
var lotto = new Array();
for(var i=0; i<6; i++){
// 1~45 난수 발생 부분
// lotto[0]=10; lotto[1]=10;
lotto[i] = Math.floor(Math.random()*45)+1;
//중복 검사 부분
for(var j=0; j<i; j++){
if(lotto[i] == lotto[j]){
i--;
break;
}
}
}
// lotto.sort();
// 정렬방식 : 오름차순 (1,2,3....)
lotto.sort(function(a,b){
return a-b;
});
// 정렬방식 : 내림차순 (10,9,8...)
// lotto.sort(function(a,b){
// return b-a;
// });
document.write(lotto);
// for(var k=0; k<6; k++){
// document.write(lotto[k]+" ");
// }
}
</script>
</head>
<body>
<form>
<input type=button value="추첨하기" onClick="find()">
</form>
</body>
</html>