抽奖权重计算

        header(‘Content-type:text/html;charset=utf-8‘);
    $data=array(
    0=>array(‘id‘=>1,‘name‘=>‘一等奖‘,‘weight‘=>‘5‘),
    1=>array(‘id‘=>2,‘name‘=>‘二等奖‘,‘weight‘=>‘10‘),
    2=>array(‘id‘=>3,‘name‘=>‘三等奖‘,‘weight‘=>‘25‘),
    3=>array(‘id‘=>4,‘name‘=>‘谢谢抽奖‘,‘weight‘=>‘60‘)
    );

    // 权重数值越高,被返回的概率越大
    function countWeight($data){
        $weight=0;
        $temp=array();
        foreach($data as $v){
            $weight+=$v[‘weight‘];
            for($i=0;$i<$v[‘weight‘];$i++){
                $temp[]=$v;//放大数组
            }
        }
        $int=mt_rand(0,$weight-1);//获取一个随机数
        $result=$temp[$int];
        return $result;
    }            

测试

$id0 = 0;
    $id1 = 0;
    $id2 = 0;
    $id3 = 0;
    for($i=1;$i<=100;$i++){
        $r = countWeight($data);
        switch($r[‘id‘]){
            case 1:
                $id0++;
                break;
            case 2:
                $id1++;
                break;
            case 3:
                $id2++;
                break;
            case 4:
                $id3++;
                break;
        }
    }

    d($r);
    d($id0);
    d($id1);
    d($id2);
    d($id3);

    //打印数组
    function d($data , $isexit = 0){
        echo ‘<pre>‘;
        var_dump($data);
        echo ‘</pre>‘;
        if ($isexit) exit();
    }
时间: 2024-08-29 00:21:46

抽奖权重计算的相关文章

前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前端群里还发现以上观点类似的奇葩聊天,真是*** 其实,也是在很久以前,看了腾讯ISUX的一位前端工程师-麦时分享的一篇技术文章(个人站点已失效,就不贴出来了),才了解到真正的css选择器权重计算. 以下是css选择器权重计算精华所在,翻译自国外的文档(记得是W3C给出的计算规则) 如果一个声明来自s

文本分类入门(番外篇)特征选择与特征权重计算的区别

http://www.blogjava.net/zhenandaci/archive/2009/04/19/266388.html 在文本分类的过程中,特征(也可以简单的理解为“词”)从人类能够理解的形式转换为计算机能够理解的形式时,实际上经过了两步骤的量化——特征选择阶段的重要程度量化和将具体文本转化为向量时的特征权重量化.初次接触文本分类的人很容易混淆这两个步骤使用的方法和各自的目的,因而我经常听到读者有类似“如何使用TFIDF做特征选择”或者“卡方检验量化权重后每篇文章都一样”等等困惑.

CSS中选择器优先级的权重计算

CSS中选择器优先级的权重计算 先看一段代码,如下: a{ color: red; } #box a{ color: green; } [class="box"] a{ color: gold; } .box a{ color: brown; } p a{ color: yellow; } </style> <p id='box' class="box"> <a>hello</a></p> 请问上面代码中,

搜索中词权重计算及实践

随着网络和信息技术的飞速发展,网络中的信息量也呈现爆炸式的增长,那么快速并且正确从这些海量的数据中获取正确的信息成为了现在搜索引擎技术的核心问题.用户的输入通常呈现很大的差异性,这是因为不同的人接受不同的教育.不同的文化,导致在表述同一个问题上面差异很大,那么对用户输入的搜索词进行词条权重的打分是非常有必要的,这对于从用户输入的搜索词中提取核心词,或是对搜索词返回的文档排序等都是一个非常重要的课题.词权重特征是衡量查询中词的重要度程度,主要应用于相关性排序. 一.TF-IDF 词频-逆文档频率(

CSS选择器权重计算

权重计算规则 内联样式,如: style=" ",权值为1000. ID选择器,如:#content,权值为0100. 类,伪类和属性选择器,如.content,权值为0010. 类型选择器和伪元素选择器,如div p,权值为0001. 通配符.子选择器.相邻选择器等的.如*.>.+,权值为0000. 继承的样式没有权值. 权值越大,权重越高 !important !important 用来提升优先级,加了这句的样式的优先级是最高的. 原文地址:https://www.cnblo

CSS 选择器权重计算规则

CSS 选择器(Selector)的权重(Specificity)决定了对于同一元素,到底哪一条 CSS 规则会生效.且仅有当多条 CSS 规则都对同一元素声明了相应样式时,才会涉及到权重计算的问题. 选择器的分类 正式计算选择器权重之前,先来看选择器是如何被分类的. 因为 CSS 选择器众多,在计算时,这些选择器被归为了三大类,按其权重由大到小依次为: ID 选择器:比如 #dialog 元素类型选择器(type selector)和伪选择器(pseudo selector):比如 h1,::

(6)文本挖掘(三)——文本特征TFIDF权重计算及文本向量空间VSM表示

建立文本数据数学描述的过程分为三个步骤:文本预处理.建立向量空间模型和优化文本向量.文本预处理主要采用分词.停用词过滤等技术将原始的文本字符串转化为词条串或者特点的符号串.文本预处理之后,每一个文本的词条串被进一步转换为一个文本向量,向量的每一维对应一个词条,其值反映的是这个词条与这个文本之间的相似度.相似度有很多不同的计算方法,所以优化文本向量就是采用最为合适的计算方法来规范化文本向量,使其能更好地应用于文本分类和文本聚类等方面. TFIDF算法 TF-IDF使得一个单词能尽量与文本在语义上相

实现权重计算

今天试图实现内部点权重的计算. 在论文中,权重的计算过程是这样的: 其中solveNNLS是求解这个方程 s为表面点,q为内部点 发现两种方法: 1.一种是把内部点位置表示成表面点的线性组合 2.另一种是把内部点的位移表示成表面点的线性组合 第2种可以化成内部点位置表示成表面点的线性组合,加上某个常数向量 来自为知笔记(Wiz)

CSS选择器的权重计算

什么是CSS选择器权重? 即使在不太复杂的样式表中,要寻找同一元素可能有两个或者更多规则,当同一元素被多个不同来源的样式规则设置了样式后,如何处理样式规则的冲突,显示元素最后的样式,用到的计算规则就是CSS选择器的权重规则. 根据选择器的特殊性决定规则的次序.具有更特殊选择器的规则优先于具有一般选择器的规则.如果两个规则的特殊性相同,那么后定义的规则优先. 特殊性 为了计算规则的特殊性,给每种选择器都分配一个数字值.然后,将规则的每个选择器的值加在一起,计算出规则的特殊性.特殊性的计算不是以10