zoukankan      html  css  js  c++  java
  • 随机产生数组长度是80的序列

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script>
            var str = '';
            var add =[1,2,3,4,5,6,8,9];
            var newArr = [1,2,3,4,5,6,7,8,9,-1,-2,-3,-4,-5,-6,-7,-8,-9];
            function getN(arr){
                return Math.floor(Math.random() * arr.length + 1)-1; 
            }
            var resultArr = [];
            var log = '';
            function randNum(){
                for(var i =0;i<80;i++){
                    var num = newArr[getN(newArr)];//随机取了一个数字 Math.abs(aaa);
                    if(num < 0){//负数
                        if(inArray(Math.abs(num),resultArr) != -1 && (repeatNum(num,resultArr) != repeatNum(Math.abs(num),resultArr))){//正数存在,而且正负是不成对
                            resultArr.push(num);
                        } else {//正数不存在
                            resultArr.push(-num);
                        }
                    } else {//正数
                        if((repeatNum(-num,resultArr) == repeatNum(Math.abs(num),resultArr))){//正数存在,而且正负成对
                            resultArr.push(num);
                        } else {//正数不存在
                            resultArr.push(-num);
                        }
                    }
                }
                str += resultArr.join(',') + '|' + check(resultArr) + '<br>';
            }
    
            function getArr(n){
                for(var i = 0; i<n; i++){
                    resultArr.length =0;
                    randNum();
                }
            }
    
        //查找索引
        function inArray(t,arr){
            if(arr.indexOf){
                return arr.indexOf(t);
            }
            for(var i=arr.length;i--;){
                if(arr[i]===t){
                    return i*1;
                }
            };
            return -1;
        }
    
        //删除数组某一个
        function deleInArray(n,arr){
            if(n<0) return false;
            arr.splice(n,1);
        }
    
        //重复次数
        function repeatNum(t,arr){
            var times = 0;
            for(var i = 0;i<arr.length;i++){  
                if(t == arr[i]){
                    times ++;
                }  
            }
            return times;                  
        }
    
        function addFunc(){
            var newNum = newArr[getN(add)];
            if(inArray(newNum,resultArr) == -1){//不存在
                resultArr.push(newNum);
            } else {
                addFunc();
            }        
        }
    
        //检查数据
        function check(arr){
            var maxNum = 0;
            var str = '';
            for(var i = 0; i<arr.length; i++){
                maxNum += arr[i];
                if(maxNum >= 45){
                    str = '不可用' + '|' + '' + i + '个数字' + '|' + '数字是:' + arr[i];
                    break;
                } else {
                    str = '可用';
                }
            }
            return str;
        }
        getArr(100);
        document.write(str);
        </script>
    </body>
    </html>

    目的是产生,数组长度是80的序列。正负相抵消,最后只剩下1到9就当作是中奖!注意要先产生正的才能出现负的!

  • 相关阅读:
    CentOS随笔
    CentOS随笔
    CentOS随笔
    CentOS随笔
    产品从生到死的N宗罪
    即将结束的2015。
    Mvvm
    android 热补丁修复框架
    反编译APK
    关于短视频
  • 原文地址:https://www.cnblogs.com/violinxliu/p/4201696.html
Copyright © 2011-2022 走看看