验证对Random的两个猜想
猜想1:Random.Next()产生的随机数不会有重复。
猜想2:大量级执行Random.Next(int i)分布在各个数值上的概率是均匀的。
验证猜想1 /*如果Random.Next()产生的随机数不存在重复,那么_CunFangSuiJiShuDeList.Count应该等于执行总次数*/ List<int> _ZhiXingCiShuList = new List<int>();
_ZhiXingCiShuList.Add();//一百
_ZhiXingCiShuList.Add();//一千
_ZhiXingCiShuList.Add();//一万
_ZhiXingCiShuList.Add();//十万
_ZhiXingCiShuList.Add();//一百万 StringBuilder _StringBuilder = new StringBuilder();
foreach (int key in _ZhiXingCiShuList)
{
List<int> _CunFangSuiJiShuDeList = new List<int>(); Random _Random = new Random();
for (int i = ; i < key; i++)
{
int _suiJiShu = _Random.Next();
//如果列表不存在该数字,则将该数字加入列表。
if (_CunFangSuiJiShuDeList.Contains(_suiJiShu) == false)
{
_CunFangSuiJiShuDeList.Add(_suiJiShu);
}
} _StringBuilder.AppendFormat("执行{0}次结果:{1}" + Environment.NewLine, key, _CunFangSuiJiShuDeList.Count);
} Console.Write(_StringBuilder.ToString());
Console.ReadLine(); 执行结果截图:从结果看,执行一百次、一千次及一万次时,不存在重复,执行十万次时,出现一次重复,一百万次出现二百三十二次重复。说明Random.Next()会产生重复随机数,但只有在超过一定量级时才会,并且量级越大重复值个数越多。
验证猜想2 static void Main(string[] args)
{
List<int> _ZhiXingCiShuList = new List<int>();
_ZhiXingCiShuList.Add();//一千
_ZhiXingCiShuList.Add();//一万
_ZhiXingCiShuList.Add();//十万
_ZhiXingCiShuList.Add();//一百万 StringBuilder _StringBuilder = new StringBuilder();
foreach (int key in _ZhiXingCiShuList)
{
Dictionary<int, List<int>> _ZiDian = new Dictionary<int, List<int>>();
for (int i = ; i < ; i++)
{
_ZiDian.Add(i, new List<int>());
} Random _Random = new Random();
for (int i = ; i < key; i++)
{
int _suiJiShu = _Random.Next();
_ZiDian[_suiJiShu].Add(_suiJiShu);
} _StringBuilder.AppendFormat("执行{0}次数值分布:" + Environment.NewLine, key);
foreach (KeyValuePair<int, List<int>> ZiDianKey in _ZiDian)
{
_StringBuilder.AppendFormat("{0}:{1}" + Environment.NewLine, ZiDianKey.Key, ZiDianKey.Value.Count);
}
_StringBuilder.Append(Environment.NewLine);
} Console.Write(_StringBuilder.ToString());
Console.ReadLine();
} 执行结果截图:猜想成立,分布在各个数值上的概率是均匀的。
写作时间:2018-11-09
=====================================================================================
本文只代表本人的见解,可能存在错误,仅用于技术交流。如果你喜欢该文,可以扫下面的二维码打赏我(打赏敬请备注“博客园打赏”五字)。

验证对Random的两个猜想的更多相关文章
- webform中的验证控件及两个应用技巧
一.非空验证--RequiredFiledValidator <一>属性: ErrorMessage--验证出错后的提示信息 ControlToValidate--要验证的控件的ID Di ...
- 总结Ajax验证注册功能的两种方式
方法一:使用jqueryForm插件提交表单注册 ①首先引入jquery和jqueryForm插件 <script type="text/javascript" src=&q ...
- 使用KFold进行训练集和验证集的拆分,使用准确率和召回率来挑选合适的阈值(threshold) 1.KFold(进行交叉验证) 2.np.logical_and(两bool数组都是正即为正) 3.np.logical_not(bool数组为正即为反,为反即为正)
---恢复内容开始--- 1. k_fold = KFold(n_split, shuffle) 构造KFold的索引切割器 k_fold.split(indices) 对索引进行切割. 参数说明:n ...
- 表单验证:$tablePrefix(定义表前缀);$trueTableName = 'yonghu',找到真实表名(yonghu)表;create($attr,0)两个参数;批量验证(返回数组);ajax+动态验证表单
*$tablePrefix是定义在Model中的,优先级大于配置文件中,如果项目中表前缀全部比如为"a_",并且在配置文件中定义了 'DB_PREFIX'=>'a_' 后期如 ...
- veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况
veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况 续接前几篇文章: 1.GoldenGate配置(一)之单向复制配置 地址:点击打开链接 2.GoldenGate配置( ...
- 两步验证杀手锏:Java 接入 Google 身份验证器实战
两步验证 大家应该对两步验证都熟悉吧?如苹果有自带的两步验证策略,防止用户账号密码被盗而锁定手机进行敲诈,这种例子屡见不鲜,所以苹果都建议大家开启两步验证的. Google 的身份验证器一般也是用于登 ...
- 使用KeePass管理两步验证
目录 使用KeePass管理两步验证 两步验证 KeePass中管理两步验证 KeeTrayTOTP插件使用 使用KeePass管理两步验证 文:铁乐与猫 2018-9-9 KeePass 是一款管理 ...
- 你知道怎么使用Google两步验证保护账户安全吗?
目录 为什么我们需要使用它? 对有些人来说,盗取密码比您想象的更简单 什么是Google两步验证? 多一道安全防线 什么是Google Authenticator ? 使用Google两步验证的好处 ...
- ajax+表单验证+验证码生成例子
MainController.class.php <?php namespace AjaxYz\Controller; use Think\Controller; class MainContr ...
随机推荐
- Chapter 4 Invitations——4
I wanted very much to talk to him, and the day after the accident I tried. 在发生事故之后我尽力尝试,我很想和他聊聊. The ...
- async/await异步处理demo
async/await异步处理demo 下载地址: async/await异步处理demo
- Java实现敏感词过滤 - DFA算法
Java实现DFA算法进行敏感词过滤 封装工具类如下: 使用前需对敏感词库进行初始化: SensitiveWordUtil.init(sensitiveWordSet); package cn.swf ...
- [机器学习]集成学习--bagging、boosting、stacking
集成学习简介 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务. 如何产生"好而不同"的个体学习器,是集成学习研究的核心. 集成学习的思路是通过 ...
- Android studio 编译出现的问题记录
1.app:transformClassesWithJarMergingForDebug'. Error:Execution failed for task ':app:transformClasse ...
- MySQL中间件之ProxySQL(13):ProxySQL集群
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html ProxySQL有原生的集群功能,但是这个原生的集群功能还正在试验阶段 ...
- OJ:重载 << 运算符
Description 补足程序,使得下面程序输出的结果是: ****100 #include <iostream> #include <string> using names ...
- [转]Raw Queries in Laravel
本文转自:https://fideloper.com/laravel-raw-queries Business logic is often complicated. Because of this, ...
- 在Windows 10中使用内置的SSH Client连接远程的Linux虚拟机
无意中发现这个功能.一直以来,在Windows平台上面要通过SSH连接Linux都需要借助第三方工具,而且往往还不是很方便.但其实在去年12月份的更新中,已经包含了一个beta版本的SSH Clien ...
- Owin Middleware如何在IIS集成管道中执行
Owin Middleware Components(OMCs) 通过安装Install-Package Microsoft.Owin.Host.SystemWeb 可以让OMCs在IIS集成管道下工 ...
从结果看,执行一百次、一千次及一万次时,不存在重复,执行十万次时,出现一次重复,一百万次出现二百三十二次重复。说明Random.Next()会产生重复随机数,但只有在超过一定量级时才会,并且量级越大重复值个数越多。
猜想成立,分布在各个数值上的概率是均匀的。