如鹏网.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基础
最新文章
- nginx 学习笔记(4) Connection处理方法
- IIS -2147467259 (0x80004005)
- linux查找文件命令 要查找包含某字符
- api-hook,更轻量的接口测试工具
- Java EE 6测试第I部分– EJB 3.1可嵌入API
- 学模拟电路的神器everycircuit
- linux dd 硬盘 脚本,如何使用dd命令测试Linux磁盘的读写速度
- Uber无人车安全员之困:这是一份机械、枯燥、影响心理的工作
- CMD-CMD命令之新建一个用户!
- c语言作业模块化设计具体,C语言程序模块化设计.doc
- PHP中的e标签和em标签一样吧,html em标签的作用
- matlab 最小二乘法拟合_最小二乘法辨识1阶离散传递函数
- Raki的统计学习方法笔记0xF(15)章:奇异值分解
- android 屏幕密度160与320换算,Android屏幕密度(Density)和分辨率的关系
- 黑客概念与文化(课程笔记)
- CnPack实用功能推荐
- Apollo感知解析之MinBox障碍物边框构建
- Python时间序列建模基础
- 中国自动化学科发展及控制界名人简介
- 基于51单片机简易数字示波器Proteus仿真
热门文章
- Flash CS3:FLV视频短片我来做!
- win11中利用IIS10搭建asp网站
- 计算机机房设备使用管理,机房设备使用管理制度
- ChinaSkills-网络系统管理001(网络应用赛项改革)
- 自学c语言需要什么要求,学习c语言需要什么基础
- python 运动模拟_Python中的几何布朗运动模拟
- 借用传感器用计算机测速度题,传感器原理及应用试题库(已做)
- Elasticsearch:IP 数据类型及其搜索
- Windows Server 2008 (IIS)
- 代理模式代码举例(java语言版)