彩票预测以及EXCEL历史数据匹配正确(纯js)
来源:互联网 发布:mysql 添加字符串 编辑:程序博客网 时间:2024/06/17 19:34
<html><head></head><script src="https://cdn.bootcss.com/xlsx/0.11.10/xlsx.core.min.js"></script><body><style>.ipt{width:50px;}.content{margin: 0 auto;width: 300px;}#pop{min-height: 360px;min-width: 300px;}#demo,#demoD{height: 200px;width: 300px;overflow: scroll;}</style><body><div class="content"><p>验证往期号码准确率</p><input type="file" onchange="importf(this)" /> <textarea id="demo"></textarea> <button id="copy">一键复制正确1错误0</button> <textarea id="demoD"></textarea> <button id="copyD">一键复制胆码</button> <p>最大正确连续数:<span id="maxRight"></span>最大失败连续数:<span id="maxFalse"></span></p> <p>请在下方填入上期号码</p><input class="ipt" type="text" /><input class="ipt" type="text" /><input class="ipt" type="text" /><input class="ipt" type="text" /><input class="ipt" type="text" /><button style="margin-top:10px" id="btn">确定</button><p>下一期预测三胆:<span id="answer"></span></p><p>预测号码如下:</p><textarea id="pop"></textarea></div></body><script>//copyvar copy = document.getElementById("copy");var copyD = document.getElementById("copyD");var Url2=document.getElementById("demo");var Url3=document.getElementById("demoD");copy.onclick=function(){Url2.select(); // 选择对象document.execCommand("Copy"); // 执行浏览器复制命令alert("已复制好,可贴粘。");}copyD.onclick=function(){console.log(Url3.value);Url3.select(); // 选择对象document.execCommand("Copy"); // 执行浏览器复制命令alert("已复制好,可贴粘。");}//数组比较是否有相同function arrCheckG(arr1,arr2){var arr3=[];for(var s in arr1){ for(var x in arr2){ if(arr1[s]==arr2[x]){ arr3.push(arr1[s]); } }}if(arr3.length!=0){return 1;}else{return 0;}}//判断连续个数function unBrokenNumOne(str){var s = (str+"").split(""),arr = [];var max = 0,maxNum = 0;for(var i = 0;i<(str+"").split("").length;i++){arr[i] = (str+"").split("")[i];if(arr[i] == "1"){max += 1;}if(arr[i] == "0"){max = 0;}maxNum = max > maxNum?max:maxNum;}return maxNum;}function unBrokenNumZero(str){var s = (str+"").split(""),arr = [];var max = 0,maxNum = 0;for(var i = 0;i<(str+"").split("").length;i++){arr[i] = (str+"").split("")[i];if(arr[i] == "0"){max += 1;}if(arr[i] == "1"){max = 0;}maxNum = max > maxNum?max:maxNum;}return maxNum;} /* FileReader共有4种读取方法: 1.readAsArrayBuffer(file):将文件读取为ArrayBuffer。 2.readAsBinaryString(file):将文件读取为二进制字符串 3.readAsDataURL(file):将文件读取为Data URL 4.readAsText(file, [encoding]):将文件读取为文本,encoding缺省值为'UTF-8' */ var wb;//读取完成的数据 var rABS = false; //是否将文件读取为二进制字符串 function importf(obj) {//导入 if(!obj.files) { return; } var f = obj.files[0]; var reader = new FileReader(); reader.onload = function(e) { var data = e.target.result; if(rABS) { wb = XLSX.read(btoa(fixdata(data)), {//手动转化 type: 'base64' }); } else { wb = XLSX.read(data, { type: 'binary' }); } //wb.SheetNames[0]是获取Sheets中第一个Sheet的名字 //wb.Sheets[Sheet名]获取第一个Sheet的数据 var key = JSON.stringify( XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) ), numKey = key.split('key').length - 1, keyArr = [], str = ""; //5位数 var five = []; //被验证的下一个数 var checkNum = "", checkNumArr = []; //校验后的返回值 var returnStr = "", returnStrDD = "", returnStrArr = []; //校验结果,0.1表示 var endCheck = "", endCheckNum = ""; for(var i = 1;i<=numKey;i++){ str = key.split('key')[i].split('"}')[0].split('":"')[1]+""; keyArr = [parseInt(str.split("")[0]),parseInt(str.split("")[1]),parseInt(str.split("")[2]),parseInt(str.split("")[3]),parseInt(str.split("")[4])]; if(i != numKey){ checkNum = key.split('key')[i+1].split('"}')[0].split('":"')[1]+""; checkNumArr = [parseInt(checkNum.split("")[2]),parseInt(checkNum.split("")[3]),parseInt(checkNum.split("")[4])]; } //算5位数 five = sumArr(keyArr); //算三胆出数 returnStr = chooseNum(five,8)+""; returnStrArr = [parseInt(returnStr.split("")[0]),parseInt(returnStr.split("")[1]),parseInt(returnStr.split("")[2])]; //danma returnStrDD += returnStr + "\n"; endCheck += arrCheckG(returnStrArr,checkNumArr) + "\n"; endCheckNum += arrCheckG(returnStrArr,checkNumArr); //比较returnStr和CheckNumArr是否有相同元素,如果有,则匹配成功,正确 // //变量用完置空 keyArr = []; returnStr = ""; checkNumArr= ""; returnStrArr = []; five = []; } document.getElementById("demo").value= endCheck; document.getElementById("demoD").value= returnStrDD; document.getElementById("maxRight").innerHTML = unBrokenNumOne(endCheckNum); document.getElementById("maxFalse").innerHTML = unBrokenNumZero(endCheckNum); // console.log(endCheckNum); }; if(rABS) { reader.readAsArrayBuffer(f); } else { reader.readAsBinaryString(f); } } function fixdata(data) { //文件流转BinaryString var o = "", l = 0, w = 10240; for(; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w))); o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w))); return o; }var btn = document.getElementById('btn'), answer = document.getElementById('answer'),pop = document.getElementById('pop');btn.onclick=function(){var itp1 = document.getElementsByClassName('ipt')[0].value,itp2 = document.getElementsByClassName('ipt')[1].value,itp3 = document.getElementsByClassName('ipt')[2].value,itp4 = document.getElementsByClassName('ipt')[3].value,itp5 = document.getElementsByClassName('ipt')[4].value;var bArray = [parseInt(itp1),parseInt(itp2),parseInt(itp3),parseInt(itp4),parseInt(itp5)];var endArr = sumArr(bArray);chooseNum(endArr)}function chooseNumNoThree(endArr){//var1000个数var alist = [];var blist = [];for(var i = 0;i < 1000;i++){alist[i] = i;}//和值。三位数相加位数为endArr[0] 去掉var i = alist.length;while(i--){if(endArr[0]==(Math.floor(alist[i]/100) + Math.floor(alist[i]%100/10) + Math.floor(alist[i]%10))%10){alist.splice(i,1);}}//console.log("和值:目前还剩余"+alist.length+"注");//杀跨度。把杀跨度为endArr[2]的去掉i = alist.length;while(i--){blist.push(Math.floor(alist[i]/100));blist.push(Math.floor(alist[i]%100/10));blist.push(Math.floor(alist[i]%10));blist.sort();if((blist[2]-blist[0]) == endArr[2]){//System.out.println("杀跨度:当前去掉杀跨度为"+endArr[2]+"的数:"+alist.get(i));alist.splice(i,1);}blist = [];}//console.log("杀跨度:目前还剩余"+alist.length+"注");//杀百位。把百位为endArr[3]的去掉i = alist.length;while(i--){if(endArr[3] == Math.floor(alist[i]/100)){alist.splice(i,1);}}//console.log("杀百位:目前还剩余"+alist.length+"注");//杀十位。把十位为endArr[4]的去掉i = alist.length;while(i--){if((Math.floor(alist[i]%100/10)) == endArr[4]){alist.splice(i,1);}}//console.log("杀十位:目前还剩余"+alist.length+"注");return alist.length;}//999function chooseNum(endArr,numP){//var1000个数var alist = [];var blist = [];for(var i = 0;i < 1000;i++){alist[i] = i;}//和值。三位数相加位数为endArr[0] 去掉var i = alist.length;while(i--){if(endArr[0]==(Math.floor(alist[i]/100) + Math.floor(alist[i]%100/10) + Math.floor(alist[i]%10))%10){alist.splice(i,1);}}//console.log("和值:目前还剩余"+alist.length+"注");//杀跨度。把杀跨度为endArr[2]的去掉i = alist.length;while(i--){blist.push(Math.floor(alist[i]/100));blist.push(Math.floor(alist[i]%100/10));blist.push(Math.floor(alist[i]%10));blist.sort();if((blist[2]-blist[0]) == endArr[2]){//System.out.println("杀跨度:当前去掉杀跨度为"+endArr[2]+"的数:"+alist.get(i));alist.splice(i,1);}blist = [];}//console.log("杀跨度:目前还剩余"+alist.length+"注");//杀百位。把百位为endArr[3]的去掉i = alist.length;while(i--){if(endArr[3] == Math.floor(alist[i]/100)){alist.splice(i,1);}}//console.log("杀百位:目前还剩余"+alist.length+"注");//杀十位。把十位为endArr[4]的去掉i = alist.length;while(i--){if((Math.floor(alist[i]%100/10)) == endArr[4]){alist.splice(i,1);}}//console.log("杀十位:目前还剩余"+alist.length+"注");//去除三联123,019.....i = alist.length;while(i--){blist.push(Math.floor(alist[i]/100));blist.push(Math.floor(alist[i]%100/10));blist.push(Math.floor(alist[i]%10));blist.sort();if((blist[0]+1) == blist[1] && (blist[1]+1)==blist[2]){//System.out.println("杀跨度:当前去掉杀跨度为"+endArr[2]+"的数:"+alist.get(i));alist.splice(i,1);}if((blist[0] == 0)&&(blist[1]==1)&&(blist[2]==9)){ alist.splice(i,1);} if((blist[0] == 0)&&(blist[1]==8)&&(blist[2]==9)){ alist.splice(i,1);}blist = [];}//console.log("去除三联:目前还剩余"+alist.length+"注");//如果三胆重复,则去除三联限制,重算var flag = false;var noThreeNum = 0;flag = threeDan(alist.length);if(flag){noThreeNum = chooseNumNoThree(endArr);if(threeDan(noThreeNum)){//判断如果三胆出来还是有重复,则做处理,把第一次的加上var kArr = [(alist.length+"").split("")[0],(alist.length+"").split("")[1],(alist.length+"").split("")[2],(noThreeNum+"").split("")[0],(noThreeNum+"").split("")[1],(noThreeNum+"").split("")[2]];kArr = arr(kArr);noThreeNum = kArr[0] + kArr[1] + kArr[2];if(kArr.length == 4){noThreeNumh = kArr[1] + kArr[2] + kArr[3];}if(kArr.length == 2){noThreeNumh = kArr[0] + kArr[1];}}}//三胆出后,根据三胆出号var pointNum = [];if(noThreeNum!=0 && Math.floor(noThreeNum/100)>0){pointNum = [(noThreeNum+"").split("")[0],(noThreeNum+"").split("")[1],(noThreeNum+"").split("")[2]];}else if(noThreeNum!=0 && Math.floor(noThreeNum/100)<0 && Math.floor(noThreeNum/10)>0){pointNum = [(noThreeNum+"").split("")[0],(noThreeNum+"").split("")[1]];}else{pointNum = [(alist.length+"").split("")[0],(alist.length+"").split("")[1],(alist.length+"").split("")[2]];}var iArr = [];var caArr = [];if(pointNum.length == 3){for(var i = 0;i<1000;i++){iArr = [(i+"").split("")[0],(i+"").split("")[1],(i+"").split("")[2]];//qu chu underfinefor(var p = 0;p<iArr.length;p++){if(typeof(iArr[p])=="undefined"){iArr[p] = 0;}}for(var k = 0;k<iArr.length;k++){if(iArr[k]==pointNum[0]||iArr[k]==pointNum[1]||iArr[k]==pointNum[2]){caArr.push(i);}}}}else{for(var i = 0;i<1000;i++){iArr = [(i+"").split("")[0],(i+"").split("")[1],(i+"").split("")[2]];//qu chu underfinefor(var p = 0;p<iArr.length;p++){if(typeof(iArr[p])=="undefined"){iArr[p] = 0;}}for(var k = 0;k<iArr.length;k++){if(iArr[k]==pointNum[0]||iArr[k]==pointNum[1]){caArr.push(i);}}}}caArr = arr(caArr);//根据noThreeNum确定显示的数值var returnAnswer = "";if(noThreeNum!=0){if(numP != 8){answer.innerHTML = noThreeNum;}returnAnswer = noThreeNum;}else{if(numP != 8){answer.innerHTML = alist.length;}returnAnswer = alist.length;}var str = "",addZero = "";for(var i = 0;i<caArr.length;i++){addZero = caArr[i];if((addZero+"").length!=3){if((addZero+"").length == 1){addZero = "00"+addZero;}if((addZero+"").length == 2){addZero = "0"+addZero;}}str += addZero +" ";}if(numP != 8){pop.value = str;}//添加返回值做教研return returnAnswer;}//去重function arr(arr) { var result=[] for(var i=0; i<arr.length; i++){if(result.indexOf(arr[i])==-1){ result.push(arr[i])} } return result;} //判断三胆重复function threeDan(num){function arrP(arr) { var result=[] for(var i=0; i<arr.length; i++){if(result.indexOf(arr[i])==-1){ result.push(arr[i])} } return result;} var arr = [(num+"").split("")[0],(num+"").split("")[1],(num+"").split("")[2]];var end = false;var arr2 = arrP(arr);if(arr.length!=arr2.length){end = true;}return end;}//计算5类数function sumArr(arr){var a = arr[0],b = arr[1],c = arr[2],d = arr[3],e = arr[4];//和值var heZhi = (c+d+e)%10;//跨度var arr1 = [arr[2],arr[3],arr[4]]; var kuaDu = arr[2];var min = arr[2];for(var i = 0;i<arr1.length;i++){if(arr1[i] > kuaDu){kuaDu = arr1[i];}if(arr1[i]<min){min=arr1[i]; } // 判断最小值 }kuaDu = kuaDu - min;//杀跨度var shaKuaDu = (a+b+c+d+e)%10;//百位var bai = (c+d+e)*kuaDu;bai = parseInt((bai+"").split("")[0]);//十位var shi = (c+d+e)*kuaDu*3%10;var endArr = [heZhi,kuaDu,shaKuaDu,bai,shi];return endArr;}</script></body></html>
阅读全文
0 0
- 彩票预测以及EXCEL历史数据匹配正确(纯js)
- 【分享】PK10彩票历史数据
- 彩票历史数据入库
- 纯JS导出excel(支持中文)
- 超强彩票预测!
- 环境监测历史数据(AQI历史数据)
- 纯js的excel导出插件
- 纯js 解决页面table导出excel
- 【彩票】彩票预测算法(一):离散型马尔可夫链模型C#实现
- 【彩票】彩票预测算法(一):离散型马尔可夫链模型C#实现
- 计算机是否能预测彩票,证券---扯谈
- 彩票分析与预测平台-开发简介
- js彩票大乐透
- js彩票效果
- 【详解】Python带历史数据写Excel表
- 纯java开发出来的彩票网站--彩票通,全面解析彩票通系统架构
- js 通过正则匹配 验证url格式是否正确
- 使用JS 正则 匹配手机号码输入格式是否正确
- docker搭建私有仓库以及使用
- Linux网络编程-TCP
- 从Properties.Resources里的byte生成word文件
- 07 用URL正则实现文章链接跳转
- JPA entityManager 实现 分页查询
- 彩票预测以及EXCEL历史数据匹配正确(纯js)
- bzoj3626: [LNOI2014]LCA
- 个人记录jdk各版本之间的一些区别
- 【知识总结】显示/隐藏状态栏和导航栏
- 用shell中用jq解析json遇到compile error
- Microsoft Word 2010
- package.json.lock 文件
- 伪共享,并发编程无声的性能杀手
- Android 屏幕适配总结