分类
实用技能

Python慢,为啥还有大公司用?

Instagram 的视频可以给我们哪些启示呢?

  • Python + Django 的组合完全可以负载用户数以 10 亿记的服务,如果你正准备开始一个项目,放心使用 Python 吧!
  • 完善的单元测试对于复杂项目是非常有必要的。如果没有那『成千上万的单元测试』。很难想象 Instagram 的迁移项目可以成功进行下去。
  • 开发者和同事也是你的产品用户,利用好他们。用他们为你的新特性发布前多一道测试。
  • 完全基于主分支的开发流程,可以给你更快的迭代速度。前提是拥有完善的单元测试和持续部署流程。
  • Python 3 是大势所趋,如果你正准备开始一个新项目,无需迟疑,拥抱 Python 3 吧!

作者:我爱学python
链接:https://www.jianshu.com/p/e18e01ad7ad9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

分类
实用技能

php 抽奖概率算法

/* 
 * 不同概率的抽奖原理就是把0到*(比重总数)的区间分块
 * 分块的依据是物品占整个的比重,再根据随机数种子来产生0-* 中的某个数
 * 判断这个数是落在哪个区间上,区间对应的就是抽到的那个物品。
 * 随机数理论上是概率均等的,那么相应的区间所含数的多少就体现了抽奖物品概率的不同。
 */  


function get_rand($proArr)
{
$result = array();
foreach ($proArr as $key => $val) { 
    $arr[$key] = $val['v']; 
}  
$proSum = array_sum($arr);      // 计算总权重
$randNum = mt_rand(1, $proSum);
$d1 = 0;
$d2 = 0;
for ($i=0; $i < count($arr); $i++)
{
    $d2 += $arr[$i];
    if($i==0)
    {
        $d1 = 0;
    }
    else
    {
        $d1 += $arr[$i-1];
    }
    if($randNum >= $d1 && $randNum <= $d2)
    {
        $result = $proArr[$i];
        break; // 注意这里,当我们已经匹配到奖品时,就应该直接退出循环
    }
}
unset ($arr); 
return $result;


}