发表于: 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.师兄解答很快 简直可以说是秒回 厉害厉害 

看来以后要多麻烦师兄了


返回列表 返回列表
评论

    分享到