js—生成指定2个数范围内的随机数,随机颜色(16进制,rgb),不同概率的奖项设置

之前自己在做瀑布流照片墙时,苦于强迫症,找了好久也没找到心仪的图片,决定用随机的颜色+随机的高度来模拟不同的图片。当时用的方法不太好,代码行数也较多,刚刚看到一篇文章,发现里面有关于随机数的各种事例。下面就引入我所感兴趣的(以后会常用到的)技巧。

  • 生成指定2个数范围内的随机数(概率基本相等)
function randomNum(max,min){
        return Math.floor(Math.random()*(max-min+1)+min)
}
  • 十六位进制颜色(概率基本相等)
function randomColor(){
    var color="#";
    var colorArr=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];
    for(i=0;i<6;i++){
        var cur=randomNum(15,0);
        color+=colorArr[cur];
    }
    function randomNum(max,min){
        return Math.floor(Math.random()*(max-min+1)+min)
    }
    return color;
}
  • rgb颜色(概率基本相等)
function randomColor(){
    var color="rgb(";
    for(i=0;i<3;i++){
        var cur=randomNum(255,0);
        if(i>1){
            color+=cur+")"
        }else{
            color+=cur+","
        }
    }
    function randomNum(max,min){
        return Math.floor(Math.random()*(max-min+1)+min)
    }
    return color;
}
  • 不同概率的奖项设置(概率不同,自己设定)
var pri=["一等奖","二等奖","三等奖","参与奖"];
function updateRandom(){
    var ranNum=Math.random();
    var n=Math.random()/4;
    if(ranNum<0.01){
        return n;
    }
    else if(ranNum<0.04){
        return n+0.25;
    }
    else if(ranNum<0.1){
        return n+0.5;
    }
    else if(ranNum<1){
        return n+0.75;
    }
}
var randomIn=Math.floor(4*updateRandom());
alert(pri[randomIn]);

参考文章:小议Math.random()
原文链接:http://www.jianshu.com/p/a6f8d08cc06d#

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,349评论 0 33
  • body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoot...
    wangyw阅读 3,649评论 0 0
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 5,610评论 0 6
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,449评论 0 4
  • 一 两行,煮泪 三人行,拙者下 四目两行,对眼撩花,偏堣之别,始于情话 南山有一木,苍老又僵化。秋落梨花雨,宫制万...
    狼吻与蝶花阅读 1,267评论 0 4