로또 출현 번호 추적-2에서 추적 할 회차의 당첨번호가 지금까지 당첨 된 모든 회차와 비교하여 추현 번호를 추적했었습니다. 여기서, 다른 관점으로 범위 회차를 기준으로 어떤 번호들이 출현 되었는지 범위 통계를 내는 방식으로 로또 번호 추적을 해보는 시간을 갖도록 하겠습니다.
<input id="num1" type="text" oninput="aaa(this.value)" maxlength="3" size="3"/>~
<input id="num2" type="text" oninput="bbb(this.value)" maxlength="3" size="3"/>범위
<div id="demo1" style="background-color:yellow"> </div>
<div id="demo2" style="background-color:yellow"> </div>
<p> 보너스 포함 : </p>
<div id="demo11" style="background-color:yellow"> </div>
<div id="demo22" style="background-color:yellow"> </div>
[결과]
우선 입력폼을 위 결과에서 나온 것처럼 설정해 놓고 두가지 형태로 결과를 만들어 냅니다. 범위와 보너스 번호 포함하여 출현 번호를 추적하는 방식으로 만들 예정입니다.
몇회의 post로 대충 코딩의 의미 전달이 이루어졌기 때문에 바로 코딩을 해보겠습니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://d3js.org/d3.v4.min.js"></script>
<title>TEST PROJECT</title>
</head>
<body>
<input id="num1" type="text" oninput="aaa(this.value)" maxlength="3" size="3"/>~
<input id="num2" type="text" oninput="bbb(this.value)" maxlength="3" size="3"/>범위
<div id="demo1" style="background-color:yellow"> </div>
<div id="demo2" style="background-color:yellow"> </div>
<p> 보너스 포함 : </p>
<div id="demo11" style="background-color:yellow"> </div>
<div id="demo22" style="background-color:yellow"> </div>
<script>
var dataset;
var a,b;
function aaa(val){
a=val-1;
render1(dataset);
render2(dataset);
}
function bbb(val){
b=val-1;
render1(dataset);
render2(dataset);
}
function render1(data){
var m = new Array();
for(var i=0;i<46;i++){
m[i]=0;
}
for(var i=a;i<=b;i++){
for(var j=1;j<7;j++){
var ch="n"+j;
m[data[i][ch]]=1;
}
}
var str_m1="";
var str_m2="";
var cnt1=0,cnt2=0;
for(var i=1;i<46;i++){
if(m[i]!=0){
str_m1=str_m1+","+i;
cnt1++;
}else{
str_m2=str_m2+","+i;
cnt2++;
}
}
var p = d3.select("div#demo1")
.text("출현 "+cnt1+"개 "+str_m1);
var p = d3.select("div#demo2")
.text("미출현 "+cnt2+"개 "+str_m2);
}
function render2(data){
var m = new Array();
for(var i=0;i<46;i++){
m[i]=0;
}
for(var i=a;i<=b;i++){
for(var j=1;j<8;j++){
var ch="n"+j;
m[data[i][ch]]=1;
}
}
var str_m1="";
var str_m2="";
var cnt1=0,cnt2=0;
for(var i=1;i<46;i++){
if(m[i]!=0){
str_m1=str_m1+","+i;
cnt1++;
}else{
str_m2=str_m2+","+i;
cnt2++;
}
}
var p = d3.select("div#demo11")
.text("출현 "+cnt1+"개 "+str_m1);
var p = d3.select("div#demo22")
.text("미출현 "+cnt2+"개 "+str_m2);
}
d3.csv("number.csv",type, function(error,data){
if (error) throw error;
dataset=data;
a = d3.min(data, function(d) {return d.th; })-1;
b = d3.max(data, function(d) {return d.th; })-1;
document.getElementById("num1").value=a+1;
document.getElementById("num2").value=b+1;
render1(data);
render2(data);
});
function type(d){
d.th=+d.th;
d.n1=+d.n1;
d.n2=+d.n2;
d.n3=+d.n3;
d.n4=+d.n4;
d.n5=+d.n5;
d.n6=+d.n6;
d.n7=+d.n7
return d;
}
</script>
</body>
</html>
[결과]
정상적으로 범위 회차의 번호를 지정하여 그 범위 동안 출현한 번호를 쉽게 확인이 가능 합니다. 여기서 보너스 번호 포함 하지 않는 경우와 포함되는 경우로 번호 출현 추적을 할 수 있습니다.
오늘의 핵심은 범위의 로또번호를 종합하여 얼마나 번호가 출현 되었는지 알 수 있습니다. 이부분을 잘 이용하면 재밌는 것들을 많이 만들 수 있습니다.
오늘은 코딩에 대해 자세히 이야기를 하지 않았습니다. 사행성 post라서 깊게는 설명을 못드리지만 한번 오늘 다룬 내용을 스스로 분석해 보세요.