지난 시간 post로 로또 출현 번호 추적을 마무리 할까 하다가 이 부분에 핵심인 실제 이 로또 출현 번호 추적을 한 목적이 빠져 있는데 그 부분을 이야기 안하면 좀 아쉬울 것 같아서 사행성 post가 되었지만 그래도 마무리를 하는것이 좋을 것 같아서 이번 post의 핵심 부분을 이야기 하도록 하겠습니다.
<form oninput="aaa(parseInt(a1.value)||0,parseInt(a2.value)||0,parseInt(a3.value)||0,parseInt(a4.value)||0,parseInt(a5.value)||0,parseInt(a6.value)||0)">
생성 : <input type="text" name ="a1" maxlength="2" size="2"/>
<input type="text" name ="a2" maxlength="2" size="2"/>
<input type="text" name ="a3" maxlength="2" size="2"/>
<input type="text" name ="a4" maxlength="2" size="2"/>
<input type="text" name ="a5" maxlength="2" size="2"/>
<input type="text" name ="a6" maxlength="2" size="2"/>
</form>
[결과]
위와 같이 입력폼으로 6개의 랜덤 숫자를 수동으로 입력하게 되고 이 입력된 숫자에 대한 로또 출현 번호를 추적하게 됩니다.
추가로, 출현 횟수 입력창
<input type="text" oninput="bbb(this.value)" value="1" maxlength="2" size="2"/> 출현
[입력창 결과]
사전학습의 소스를 위 수동 입력창에서 입력한 값을 비교하도록 수정하면 됩니다.
function aaa(a1,a2,a3,a4,a5,a6) {
var StrNumber =a1+","+a2+","+a3+","+a4+","+a5+","+a6;
chkdata[1]=a1;
chkdata[2]=a2;
chkdata[3]=a3;
chkdata[4]=a4;
chkdata[5]=a5;
chkdata[6]=a6;
document.getElementById("demo1").innerHTML=StrNumber;
var p = d3.select("body").selectAll("p").remove();
render(dataset);
}
```
체크 할 데이터를 입력 폼에서 입력한 값을 chkdata[]에 저장합니다.
data.forEach(function(d){
var cnt=0;
for(var i=1;i<7;i++){
var ch1="n"+i;
for(var j=1;j<7;j++){
var ch2="n"+j;
if(chkdata[i]===d[ch2]){
cnt++;
}
}
}
```
위 코딩에서 보시는 것처럼 d[]은 지난 로또 당첨 번호 데이터로 이 데이터는 수동으로 입력한 chkdata[]값과 비교해서 일치한 숫자를 카운트를 세게 됩니다. 몇개의 숫자가 일치하는지를 체크하는 부분이지요.
그러면, 수정한 부분을 사전 학습 소스에 대입하면 결과를 살펴보도록 하죠.
[전체소스]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://d3js.org/d3.v4.min.js"></script>
<title>JS Bin</title>
</head>
<body>
<form oninput="aaa(parseInt(a1.value)||0,parseInt(a2.value)||0,parseInt(a3.value)||0,parseInt(a4.value)||0,parseInt(a5.value)||0,parseInt(a6.value)||0)">
생성 : <input type="text" name ="a1" maxlength="2" size="2"/>
<input type="text" name ="a2" maxlength="2" size="2"/>
<input type="text" name ="a3" maxlength="2" size="2"/>
<input type="text" name ="a4" maxlength="2" size="2"/>
<input type="text" name ="a5" maxlength="2" size="2"/>
<input type="text" name ="a6" maxlength="2" size="2"/>
</form>
<input type="text" oninput="bbb(this.value)" value="1" maxlength="2" size="2"/> 출현
<div id="demo1" style="background-color:yellow"> </div>
<div id="demo2" style="background-color:yellow"> </div>
<script>
var ch_number = 0;
var chk=1;
var dataset;
var chkdata = new Array();
function aaa(a1,a2,a3,a4,a5,a6) {
var StrNumber =a1+","+a2+","+a3+","+a4+","+a5+","+a6;
chkdata[1]=a1;
chkdata[2]=a2;
chkdata[3]=a3;
chkdata[4]=a4;
chkdata[5]=a5;
chkdata[6]=a6;
document.getElementById("demo1").innerHTML=StrNumber;
var p = d3.select("body").selectAll("p").remove();
render(dataset);
}
function bbb(data) {
chk=data;
var p = d3.select("body").selectAll("p").remove();
render(dataset);
}
function render(data){
var CountNum=0;
var p = d3.select("body");
data.forEach(function(d){
var cnt=0;
for(var i=1;i<7;i++){
var ch1="n"+i;
for(var j=1;j<7;j++){
var ch2="n"+j;
if(chkdata[i]===d[ch2]){
cnt++;
}
}
}
if(cnt>=chk){
console.log(d.th+"회 : "+d.n1+","+d.n2+","+d.n3+","+d.n4+","+d.n5+","+d.n6+" 출현 : "+cnt);
var string = d.th+"회 : "+d.n1+","+d.n2+","+d.n3+","+d.n4+","+d.n5+","+d.n6+" 출현 : "+cnt;
p.append("p")
.attr("fill","blue")
.text(string);
CountNum++;
}
});
document.getElementById("demo2").innerHTML="횟수 : "+CountNum;
}
d3.csv("number.csv",type, function(error,data){
if (error) throw error;
dataset=data;
render(dataset);
});
function type(d){
d.n1=+d.n1;
d.n2=+d.n2;
d.n3=+d.n3;
d.n4=+d.n4;
d.n5=+d.n5;
d.n6=+d.n6;
return d;
}
</script>
</body>
</html>
[결과]
오늘 다룬 내용은 핵심입니다. 오늘 다룬 내용은 어떤 능력을 가지고 있을까요. 출현 번호 추적 할 수 있다는 것은 여러가지를 생각 할 수 있게 합니다. 자신이 만든 번호가 지금까지의 출현 번호와 어느정도 유사한 패턴을 지니고 있는지 알 수 있습니다.
한번 각 회차 별 일정 숫자가 어느정도 일치하며 반복되어 왔는지 아무 숫자나 입력 해보세요. 꽤 많은 무작위 번호들이 여러번 반복되어 당첨 번호로 출현을 왔다는 것을 알 수 있을 거에요. 이말은 돌려 말하면 자신이 만든 번호가 그 유사한 패턴의 번호ㅗ 만들어 졌는지 그냥 막 숫자인지를 어느정도 나눌 수 있다는 의미입니다. 적어도 자신이 만든 번호가 확률적으로 당첨 될 가능성을 좀 더 높일 수 있다는 의미이기도 합니다.
번호를 무작위 랜덤으로 만들더라도 지금까지 반복 출현되는 번호의 횟수가 많은 번호라면 당첨 될 가능성이 높아진다는 의미이기도 하겠죠. 그런데 실상은 그렇지 못합니다. 결과론적으로 이번주 차 번호로 역 추적을 했을 때 아 이번호가 여러번 반복되었구를 알 뿐 실제는 그 번호대를 맞추기는 어렵습니다.