数组中的三个数0,1,2,循环12次后用随机数控制每个数组中的数至少出现三次

varnum=newArray(0,1,2);varrandom=newArray();functionobject(){for(vari=0;i<12;i++){x=M... var num=new Array(0,1,2);
var random =new Array();
function object()
{
for(var i=0;i<12;i++)
{
x= Math.floor(Math.random() * num.length); //x是存放0- num.length 之间的随机数的
random.push(x);
}
alert(random); //依次弹出random数组中的数
}
问题是:我想控制random 数组中0,1,2,每个数至少出现3次

谢谢大家,帮帮忙啦
展开
 我来答
百度网友2506695
2012-11-18 · TA获得超过480个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:99.8万
展开全部
你的意思是最少让0,1,2在random里面出现3次,根据你写的代码来看,是无法保证的,因为出现的数是随机的,我觉得,你可以不用循环这么多次,直接把random里面先放上0,1,2各三次,然后再随机生成剩下的3个数,这样就可以保证0,1,2至少出现三次了,至于数组里面的顺序,你再想办法让它们随机排列就行了,以下是个DEMO,看看是不是你想要的:

<script type="text/javascript">
var num = [0,1,2], len = num.length;
var arr = [] , rd = [];
for(var i=0;i<len;i++){
for(var j=0;j<3;j++){
arr.push(num[i]); //先向里面放入必须出现的数字,这里出现多少次,你自己控制
}
}
for(var i=0;i<3;i++){
arr.push(Math.floor(Math.random()*num.length)); //此时已经保证每个数字至少出现3次了
}
for(var i=0,l=arr.length;i<l;i++){
var ran = Math.floor(Math.random()*l);
rd.push(arr[ran]); //对arr里面的值再随机排列一下
}
</script>

希望是你想要的...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式