发表于: 2021-04-23 20:56:30
1 2031
今天完成的事情:任务二的JS获取input标签value,看JS电子书
明天计划的事情:JS知识学习,任务二完成,
遇到的问题:JS正则表达式还没搞懂,存在的问题太多,还要加倍努力
收获:
用JS使多个input标签的联合,实现输出值的同:
获取多个input标签的DOM节点,我的用的ID选择器;
数组乱序:
数组乱序也称为洗牌问题;一个数组中的数将其打乱排列,且没有重复。
var b = [];
while (a.length) {//循环取a数组中的数
b.push(a[index]);//将随机数放到b数组中
a.splice(index, 1);//将抽到的数值删掉
}
return b;//返还数组
}
对于n个数进行随机打乱并排列:
首先当n=2的情况下,根据基本算法,有1/2的概率这两个数会互换位置,也有1/2的概率不会还位置,因此对于n=2的情况,满足随机取数并排列的要求;
倘若有 i 个数,i>=2时;符合随机性的要求,每个数出现在随机的位置上的概率为1/i ;
对于 i + 1个数时,每位数出现在随机位置或者交换到末尾上的概率为1/(i+1)。若取得的随机数没有交还到末尾,开始第二轮循环时,为 i 个数随机,依据上面的运算 i 出现在随机位置上的概率为1/i,所以每个数出现在 i 的前一位的概率为{ i/(i+1) * (1/i) } = 1/(i+1),也就是1/(i+1);
上面的结论:当任意数组数量,i >=2 , 每个数值放在任意位置的概率为1/i
评论