js代码 关于红球1到35号选六个,蓝球1到16号选一个,结果是输出的球

JavaScript010

js代码 关于红球1到35号选六个,蓝球1到16号选一个,结果是输出的球,第1张

<html>

<head>

<title>test</title>

<meta http-equiv="content-Type" content="text/htmlcharset=utf-8">

<script type="text/javascript">

var unique = {}

    window.onload = function(){

     document.getElementById('btn').onclick = function(){

     var result = random_num([6,1])

     document.getElementById('result').innerHTML = document.getElementById('result').innerHTML + '<br />' + result

     unique = {}

     }

    }

    function random_num(){

        var params = arguments[0]

        var count = params[0] + params[1]

        var result = arguments[1] || []

        var k = ("0"+Math.floor(Math.random() * (result.length >= params[0] ? 16 : 33) + 1)).slice(-2)

        if(result.length<count){

            if(!unique[k]){

                result.push(k)

                unique[k] = 1

            }

            random_num(params,result)

        }

        return result.slice(0,count-params[1]).sort().concat(result.slice(params[0]).sort())

    }

</script>

<body>

<button id="btn">result</button>

<div id="result"></div>

</body>

</html>

建议先生成一个33的数组

var reds=setnum(33)//红球

var blues=setnum(16)//蓝球

var items=[]

while(items.length<6){

var index=rang(1,reds.length)

if(reds[index]!=0){

items.push(index)

reds[index]=0

}

}

alert(items) // 这样就获取到了 随机的6个红球

//产生随机数

function rang(min,max){

var cur=max-min+1

return Math.floor(Math.random()*cur+min)

}

//生成球

function setnum(n){

var numbs=[]

for(var i=1i<=ni++){

numbs.push(i)

}

return numbs

}

//完全手敲 有错误请见谅 希望多你有所帮助

return返回的值为袋中红球的数目为m、白球数目为n、需要取出x个球、红球至少出现y次时的概率 此函数为递归函数 每进行一次函数调用代表从袋中取出一个球 可能是红球也可能是白球 (double)m/(m+n)*p1为取红球的概率 (double)n/(m+n)*p2为取白球的概率 如果你不太会递归 建议先把递归弄懂 然后再看这道题