之前自己在做瀑布流照片墻時(shí),苦于強(qiáng)迫癥,找了好久也沒找到心儀的圖片,決定用隨機(jī)的顏色+隨機(jī)的高度來模擬不同的圖片。當(dāng)時(shí)用的方法不太好,代碼行數(shù)也較多,剛剛看到一篇文章,發(fā)現(xiàn)里面有關(guān)于隨機(jī)數(shù)的各種事例。下面就引入我所感興趣的(以后會(huì)常用到的)技巧。
- 生成指定2個(gè)數(shù)范圍內(nèi)的隨機(jī)數(shù)(概率基本相等)
function randomNum(max,min){
return Math.floor(Math.random()*(max-min+1)+min)
}
- 十六位進(jìn)制顏色(概率基本相等)
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;
}
- 不同概率的獎(jiǎng)項(xiàng)設(shè)置(概率不同,自己設(shè)定)
var pri=["一等獎(jiǎng)","二等獎(jiǎng)","三等獎(jiǎng)","參與獎(jiǎng)"];
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.itdecent.cn/p/a6f8d08cc06d#