文章目录
- 前言
- 一、随机的方法
-
- 1.1 计算圆周率
- 1.2 迷宫的十字路口
- 1.3 大数据和小数据
- 二、 随机的时间复杂度
-
- 2.1 多米诺骨牌上的等差数列
- 2.2 小余的生活费
- 三、随机的准确性
-
- 3.1 从字符串到数字——哈希算法
前言
在生活中,总会遇到一些随机事件,例如,出门时是晴天还是下雨,走到十字路口时遇到的是红灯还是绿灯…这些随机事件充斥着我们每一个人的生活,构成了不确定的未来。在数学上,数学家们创立了概率论与统计学,试图在千变万化的随机事件中找到规律,用概率和期望描绘着万变中的不变。
本章将介绍一些随机算法,在这些算法中,有些算法的方法是随机的,有些算法的时间复杂度是随机的,甚至有些算法的准确性也是随机的。
随机算法的本质: 就是试图在千变万化的随机事件中找到规律。
一、随机的方法
蒙特卡洛模拟算法,这类算法利用了计算机可以快速进行大量的特点,通过重复的随机试验来估计概率或者期望。
1.1 计算圆周率
以原点为中心,画一个半径为1的圆,以及它的一个边长为2的外接正方形。
在每次实验中,在正方形中随机取一个点,并判断该点是否在圆内,由于正方形的面积为4,圆的面积为π,所以落在圆内的概率为π/4。
于是π=落在圆内的次数*4/实验总次数