发表于: 2020-08-26 19:40:52
1 1181
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
1.学习洗牌算法
随机洗牌函数
问题 这个还是看不懂
rand = Math.floor(Math.random( )*(i+1) )
正确答案
获取i的值 9
random的范围值是0.33 获取随机值时候
结果是 0.33 乘 9 之间的值 =2.97
floor取整 2
试验对比
随机数 获取整数 random
结构1
Math.floor(Math.random()*52 + 1)
这就能得到一个取值范围为1~52的随机整数了.
结构2
math.floor(math.random() * (max - min + 1)) + min
Math.floor(Math.random( )*(i+1) )
背景
举例子,如果我们想要一个在0-10之间的随机数,我们需要乘以10,然后结果中的0.4会变成4
场景需要1
要一个7-11的随机数,即(7,8,9,10,11)。
Math.random() * (max - min + 1)
注释 raddom返回0-1 假设返回0.4 乘 max11 - min7 +1
0.42 * 4+1 = 2.1
场景2
我们想要一个整数。Math.floor()用来砍掉小数后的数值
Math.floor(Math.random() * (max - min + 1))
场景3
我们想要一个介于7-11的数值,但是现在只得到了0-5。为了把它变成7-10,
背景 :我们只需要把任意我们得到的值加上7。7是我们的最小值。
Math.floor(Math.random() * (max - min + 1)) + min
注释 获取整数 小数1-0 8* 5-0 +1 +7
假设 0.88* 4 +7 =10.52
背景知识
二、获得数组内元素的个数(获取数组长度)
1、使用数组的.length方法
var arr=[1,2,3]
var len=arr.length; //结果:3
洗牌函数
Shuffle(a)
看不懂
p = a[i]; a[i] = a[rand]; a[rand] = p ;
= [ ]; [ ] = [ ]; [ ] = ;
搜索
if(i!=p)
{s=a[i];
a[i]=a[p];
a[p]=s; }
解读
如果 i不等p,a[i]和a[p]上面的值互换
假设 验证正确
ai值7 随机值 3
ai值7等于3
adn等于p 3
p=3
ai=3 = 5
5=p 5
最后一张牌i 永远都在变 i--
随机牌 一直在变 相乘取值 应为一直在递减
记录牌不变 只负责记录
明天计划的事情:(一定要写非常细致的内容)
2.学习颜色随机功能
遇到的问题:(遇到什么困难,怎么解决的)
1.看不懂获取随机的语句 师兄解答已解决
2.不明白洗牌的替换顺序 师兄解答已解决
3.不明白什么时候结束洗牌,是把一堆数字洗乱,然后随机抽3个数,
4.不明白是不是 p的值是不是一直要保持循环递减 7 6 5 4 3 2 1 0 来进行,师兄说 会记录随机牌来替换p值,那递减在这一步是没用了吗
算了 不转牛角尖
大概看明白就行 回头在见多了 就回顾就看明白了
不能把自己弄死在这
师兄 我试了几次
p是记录最后一张牌,a是当前最后一张牌数字4
当前牌和随机牌互换 3换4 成为新p值
但是新p值不是4
如图 i是递减的3
但是p值不是随机值4 也不是i值3
是8
收获:(通过今天的学习,学到了什么知识)
1.洗牌算法初步了解
2.师兄解答很快 简直可以说是秒回 厉害厉害
看来以后要多麻烦师兄了
评论