如鹏网.Net基础1 随机数“骗局”揭秘
第 1 节 随机数有什么用、怎么用?
.Net中创建随机数的方法:
1
2
|
Random rand = new Random();
Console.WriteLine(rand.Next());
|
Java中创建随机数的方法:
1
2
3
|
Random rand = new Random(System.currentTimeMillis());
int i = rand.nextInt();
System.out.println(i);
|
C/C++中创建随机数的方法:
1
2
3
|
srand ((unsigned) time (NULL));
int num = rand ();
printf ( "%d\n" ,num);
|
------------------------------------------------
第 2 节 为什么每次生成的随机数都一样(跪求种子)
在For循环中生成多个随机数的时候要把new Random()放到循环外面。
随机数的原理:
线性同余法:第n+1个数=(第n个数*29+37) % 1000
编写一个自己的随机数类:
1
2
3
4
5
6
7
8
9
10
|
class MyRand {
private int seed;
public MyRand( int seed) { this .seed = seed;}
public int Next()
{
int next = (seed * 29 + 37) % 1000;
seed = next;
return next;
}
}
|
------------------------------------------------
第 3 节 如何生成真随机数
在Linux/Unix下可以使用"/dev/random"这个真随机数发生器,它的数据主来来自于硬件中断信息。
Windows:CryptGenRandom()函数,主要依据当前进程Id、当前线程Id、系统启动后的TickCount、当前时间、QueryPerformanceCounter返回的高性能计数器值、用户名、计算机名、CPU计数器的值等等来计算。
当然.Net下也可以使用RNGCryptoServiceProvider 类(System.Security.Cryptography命名空间下)来生成真随机数。
参考文章:《随机数是骗人的,.Net、Java、C为我作证》http://www.cnblogs.com/rupeng/p/3723018.html
知其然知其所以然!
如鹏网:http://www.rupeng.com
转载于:https://www.cnblogs.com/wjs5943283/p/5239199.html
如鹏网.Net基础1 随机数“骗局”揭秘相关推荐
- 如鹏网.Net基础2 专题课:ASCII码和拆数
第 1 节 ASCII介绍和char转换为int 美国标准信息交换码 计算机中存储的都是二进制数据. 什么是ASCII码? char和int的转换: char的大写小转换: '1'转换为1:和1转换为 ...
- 如鹏网.Net三层架构第一章三层基础
三层架构: 1.通常意义上的三层架构就是将整个业务应用划分为:表现层.业务逻辑层.数据访问层.区分层次的目的即为了"高内聚低耦合"的思想. 2.该课程中通过讲解餐饮管理系统来让大家 ...
- 编程学习中的一些错误认识【摘自如鹏网】
http://xidong.net/File001/File_66026.html 计算机自学宝典<九阳神功> http://www.rupeng.com/forum/thread-363 ...
- 网安基础学习之“文件上传漏洞原理与实现”
网安基础学习之"文件上传漏洞原理与实现" 近期新闻头条上报出了"长沙市场监管局网站被上传了黄色页面",经过长沙市公安局网技支队的排查,该门户网站后台编辑器存在* ...
- 如鹏网 静态Web开发 第三章:Javascript
本章主干知识点: 1.定义js的三种方式:写到html标签中:写到html的script标签中:写到单独的js文件中: 2.JavaScript中类型的转换 3.function.匿名function ...
- 内网渗透测试:内网横向移动基础总结
内网渗透测试:内网横向移动基础总结 横向移动 在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围.通过此类手段 ...
- 如鹏网C语言也能干大事精华帖
如鹏网 http://www.rupeng.com/ 1.尘封 俄罗斯方块 hity 俄罗斯方块 小马_xiao 由写俄罗斯方块引发的种种 2.Diao_Cow 很funny的程序 ...
- 51自学网sketchup8基础教程 3dmax高级建模教程 VR产品级渲染教程 家具设计制造教程...
我要自学网平面设计 计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 我要自学网Excel函数应用教程 Excel VBA基础教程 ...
- 手把手带你学python—牛客网python基础 pandas读取文件查看用户数据集的大小
牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础
- 手把手带你学python—牛客网python基础 鸢尾花分类
牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础
最新文章
- 掌握4个基本点 不被云计算忽悠
- 优化春运服务 北京铁路局在车站设置哺乳室等设施
- php mysql集群_PHP如何访问数据库集群
- Idea控制台中文乱码解决方案
- 分类与监督学习,朴素贝叶斯分类算法
- 圆环划痕检测halcon
- bigdecimal js 判断等于0_为啥阿里禁用BigDecimal的equals方法做等值比较
- 设计模式一网打尽,40余篇文章带你领略设计模式之美
- angular路由模块(二)
- Python实现指定GitHub项目下载器【项目下载+GUI可视化界面操作】
- wpf listbox绑定不跟新_苦逼的程序员,Python又有新版本3.9,跟还是不跟?
- 【转】为什么火线有电压,零线没有电压呢?
- 哨兵-2 Sentinel-2 数据下载(USGS)
- 与rasp的初次心动
- 100个数据分析常用指标和术语
- jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等
- docker白话版(一)简介+使用命令
- python+webdriver学习鼠标键盘事件以及定位元素
- html使用阿里图标库(iconfont)制作字体图标
- Jmeter+ant+jenkins 实现接口自动化构建