Javascript彩票号码
我有这个html:Javascript彩票号码,javascript,Javascript,我有这个html: <html> <head> <meta charset="UTF-8"> <title>Bonoloto</title> <script src="bonoloto.js"></script> <style> table {border-collapse: collapse;} td{border: 1px solid #000; text-align: cente
<html>
<head>
<meta charset="UTF-8">
<title>Bonoloto</title>
<script src="bonoloto.js"></script>
<style>
table {border-collapse: collapse;}
td{border: 1px solid #000; text-align: center; width: 6%;}
</style>
</head>
<body>
<script>
randomNumbers();
tables();
</script>
</body>
</html>
博诺洛托
表{边框折叠:折叠;}
td{边框:1px实心#000;文本对齐:中心;宽度:6%;}
随机数();
表();
接下来是Javascript:
randomNumbers1 = new Array();
randomNumbers2 = new Array();
commonNumbers = new Array();
function randomNumbers() {
document.write("First line:");
for (i = 0; i< 6; i++) {
randomNumbers1[i]=Math.floor(Math.random() * 49 + 1);
document.write(randomNumbers1[i] + " ");
}
document.write("<br/>");
document.write("Second line:");
for (i = 0; i< 6; i++) {
randomNumbers2[i]=Math.floor(Math.random() * 49 + 1);
document.write(randomNumbers2[i] + " ");
}
}
function tables(){
document.write("<table>");
var counter = 0;
for(i = 1; i < 50; i++) {
counter++;
if(counter == 11) {
counter = 0;
document.write("<tr>");
}
document.write("<td>" + i + "</td>");
if(counter == 10) {
counter = 0;
document.write("</tr>");
}
}
document.write("</table>");
}
randomNumbers1=新数组();
randomNumbers2=新数组();
commonNumbers=新数组();
函数随机数(){
文件。写(“第一行:”);
对于(i=0;i<6;i++){
randomNumbers1[i]=数学地板(数学随机()*49+1);
写(随机数1[i]+“”);
}
文件。写(“
”);
文件。写(“第二行:”);
对于(i=0;i<6;i++){
randomNumbers2[i]=数学地板(数学随机()*49+1);
写(随机数2[i]+“”);
}
}
函数表(){
文件。填写(“”);
var计数器=0;
对于(i=1;i<50;i++){
计数器++;
如果(计数器==11){
计数器=0;
文件。填写(“”);
}
文件。写(“+i+”);
如果(计数器==10){
计数器=0;
文件。填写(“”);
}
}
文件。填写(“”);
}
我如何做才能:
- 不允许相同的随机数在数组中出现超过1次李>
- 表中第一行数字用黄色标记,第二行数字用蓝色标记李>
- 如果第一个数字和第二个数字相同(随机数字),则在表中用绿色标记它们
function numberArray(a,b){// highest number, just a placeholder
b=[];while(a--)b[a]=a+1;return b
}
这将创建一个数字数组,其中a是最大的数字
所以如果你想要90个数字<代码>var myNumbers=numberArray(90)代码>
洗牌这个数组。此代码基于著名的fisher-yates shuffle
function shuffleArray(d,c,b,a){//the array to shuffle, just placeholders...
for(c=d.length-1;c>0;c--){
b=Math.floor(Math.random()*(c+1));
a=d[c];d[c]=d[b];d[b]=a
}
};
要洗牌myNumbers
并提取前6个数字:
shuffleArray(myNumbers);
var winningNumbers=myNumbers.slice(0,6);
演示
二,。表中第一行数字用黄色标记,第二行数字用蓝色标记
如果你解释得更好,请无论如何使用css类
三,。如果第一个数字和第二个数字相同(随机数字),则在表中用绿色标记它们
您需要在数组中循环,并检查第一个数组中的数字是否等于第二个数组中的数字。
像这样的事
numbersLottery.lastIndexOF(myNumbers[0])!==-1;
这将检查myNumbers的第一个号码是否出现在中奖号码数组中
DEMO2
如果我理解正确,也许这就是你想要的
DEMO3
基于评论图像
数正确的数字
更短更快的洗牌功能
function shuffledArray(a,b,c,d){//array,placeholder,placeholder,placeholder
c=a.length;
while(c)b=Math.random()*(--c+1)|0,d=a[c],a[c]=a[b],a[b]=d;
}
性能与其他洗牌功能的对比:
如果您对代码有任何疑问,请询问……
不允许相同的随机数在数组中出现超过1次。
不再是随机数。但是你可以使用一个数组<代码> [01,1,31,4[5],[6],[6],[7],[8],[92],[02],[01],随机选择一个数字。@ A1RPUN“随机”并不意味着“均匀分布”。好的答案,但是你应该考虑命名你的变量,这样人类就可以阅读它。这也有助于理解问题。是的,这些是短代码。。。这里的变量很难命名,比如tempNumber1…等等。顺便说一句,我从我的旧代码中复制并通过了…但是如果你有任何问题,只要问一下,我很乐意解释代码。我知道你在回答时是出于善意的,但这很让人困惑。看起来您的函数接受的参数不止一个,但实际上它只是可以用var
编写的变量。哦,那就是保存字节。。你可以在这里阅读更多关于GoogleFisher-yates shuffle的内容,你可以找到一个包含好变量的较长版本,或者询问你是否理解一些东西。