From 48e5da6876831835c0581f8d8d8b1eb566229194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=93=E5=8F=91=E5=8F=97=E9=95=BF=E7=94=9F?= Date: Mon, 22 Jul 2019 17:35:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=97=E7=89=8C=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/算法/randInt1.png | Bin 0 -> 22617 bytes images/算法/randInt2.png | Bin 0 -> 22598 bytes images/算法/randInt3.png | Bin 0 -> 8411 bytes images/算法/概率统计结果.jpg | Bin 0 -> 25357 bytes source/_posts/算法/洗牌算法.md | 108 +++++++++++++++++++++++++++++++++ 5 files changed, 108 insertions(+) create mode 100644 images/算法/randInt1.png create mode 100644 images/算法/randInt2.png create mode 100644 images/算法/randInt3.png create mode 100644 images/算法/概率统计结果.jpg create mode 100644 source/_posts/算法/洗牌算法.md diff --git a/images/算法/randInt1.png b/images/算法/randInt1.png new file mode 100644 index 0000000000000000000000000000000000000000..0cdd337d64a8ce2426f1046b209499978b29c5f3 GIT binary patch literal 22617 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 Gd;bTn7rAu+ literal 0 HcmV?d00001 diff --git a/images/算法/randInt2.png b/images/算法/randInt2.png new file mode 100644 index 0000000000000000000000000000000000000000..40a44fa56521a5dbe255500aecbfb5463dd2738c GIT binary patch literal 22598 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 UMO)VP{4=+>u#8X%~v@c%1wGpV#lN`~LK- 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 ON(S{w9^6;|o&R6*Sd6#; literal 0 HcmV?d00001 diff --git a/source/_posts/算法/洗牌算法.md b/source/_posts/算法/洗牌算法.md new file mode 100644 index 0000000..8291903 --- /dev/null +++ b/source/_posts/算法/洗牌算法.md @@ -0,0 +1,108 @@ +--- +title: 洗牌算法 +date: 2019-7-22 15:17:24 +tags: + - 算法 +categories: + - 算法 +--- + +洗牌算法也就是去随机打乱一个序列的算法 +但是是否是真的随机乱序,仍然需要对算法进行验证 + + +### 准备工作 +既然是随机乱序,自然涉及一些生成随机数和交换数组元素的方法 +所以可以先写几个工具函数,这个很简单,基本没什么难度 +```javascript +/** + * 交换数组的两个元素 + * @param {Array} arr 需要处理的数组 + * @param {Number} index1 第一个元素的索引 + * @param {Number} index2 第二个元素的索引 + */ +function swap(arr, index1, index2) { + let tmp = arr[index1] + arr[index1] = arr[index2] + arr[index2] = tmp +} +/** + * 生成从min(包含)到max(包含)范围内的随机整数 + * @param {Number} min 范围的最小值 + * @param {Number} max 范围的最大值 + */ +function randInt(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min +} +/** + * 创建从1到len的序列 + * @param {Number} len 序列长度 + */ +function createSequence(len) { + let result = [] + for(let i=1 ; i<=len ; i++) { + result.push(i) + } + return result +} +``` + +### 洗牌算法 +主体的思路是遍历数组,从当前游标之后的元素当中随机选择一个元素与当前游标指向的元素交换 +```javascript +function shuffle(arr) { + for(let i=0 ; i 概率反映随机事件出现的可能性大小。随机事件是指在相同条件下,可能出现也可能不出现的事件。例如,从一批有正品和次品的商品中,随意抽取一件,“抽得的是正品”就是一个随机事件。设对某一随机现象进行了n次试验与观察,其中A事件出现了m次,即其出现的频率为m/n。经过大量反复试验,常有m/n越来越接近于某个确定的常数(此论断证明详见伯努利大数定律)。该常数即为事件A出现的概率 + +验证起来其实就是依照`概率`这个词的基本概念来的 +运用尽可能多的样本来确定这个无限接近的常数 + +比如我们可以将上述的算法重复执行1万次,数字1出现在每个位置的次数应该比较接近 +如果增大执行次数,1出现在每个位置的次数应该越来越接近相等 + +![概率统计结果](/images/算法/概率统计结果.jpg) + +当然这样做创建大量对象,也是对内存的巨大消耗 +其实我们也可以对同一个数组执行若干次乱序处理,如果每次乱序处理是完全随机的 +那么每个数字出现在每个位置上的次数应该相对平均,实际的效果和上面的验证方式一致