第 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 随机数“骗局”揭秘相关推荐

  1. 如鹏网.Net基础2 专题课:ASCII码和拆数

    第 1 节 ASCII介绍和char转换为int 美国标准信息交换码 计算机中存储的都是二进制数据. 什么是ASCII码? char和int的转换: char的大写小转换: '1'转换为1:和1转换为 ...

  2. 如鹏网.Net三层架构第一章三层基础

    三层架构: 1.通常意义上的三层架构就是将整个业务应用划分为:表现层.业务逻辑层.数据访问层.区分层次的目的即为了"高内聚低耦合"的思想. 2.该课程中通过讲解餐饮管理系统来让大家 ...

  3. 编程学习中的一些错误认识【摘自如鹏网】

    http://xidong.net/File001/File_66026.html 计算机自学宝典<九阳神功> http://www.rupeng.com/forum/thread-363 ...

  4. 网安基础学习之“文件上传漏洞原理与实现”

    网安基础学习之"文件上传漏洞原理与实现" 近期新闻头条上报出了"长沙市场监管局网站被上传了黄色页面",经过长沙市公安局网技支队的排查,该门户网站后台编辑器存在* ...

  5. 如鹏网 静态Web开发 第三章:Javascript

    本章主干知识点: 1.定义js的三种方式:写到html标签中:写到html的script标签中:写到单独的js文件中: 2.JavaScript中类型的转换 3.function.匿名function ...

  6. 内网渗透测试:内网横向移动基础总结

    内网渗透测试:内网横向移动基础总结 横向移动 在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围.通过此类手段 ...

  7. 如鹏网C语言也能干大事精华帖

    如鹏网 http://www.rupeng.com/ 1.尘封 俄罗斯方块    hity 俄罗斯方块    小马_xiao   由写俄罗斯方块引发的种种 2.Diao_Cow   很funny的程序 ...

  8. 51自学网sketchup8基础教程 3dmax高级建模教程 VR产品级渲染教程 家具设计制造教程...

    我要自学网平面设计 计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程  我要自学网Excel函数应用教程 Excel VBA基础教程 ...

  9. 手把手带你学python—牛客网python基础 pandas读取文件查看用户数据集的大小

    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础

  10. 手把手带你学python—牛客网python基础 鸢尾花分类

    牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么,传送门- 牛客网python基础

最新文章

  1. nginx 学习笔记(4) Connection处理方法
  2. IIS -2147467259 (0x80004005)
  3. linux查找文件命令 要查找包含某字符
  4. api-hook,更轻量的接口测试工具
  5. Java EE 6测试第I部分– EJB 3.1可嵌入API
  6. 学模拟电路的神器everycircuit
  7. linux dd 硬盘 脚本,如何使用dd命令测试Linux磁盘的读写速度
  8. Uber无人车安全员之困:这是一份机械、枯燥、影响心理的工作
  9. CMD-CMD命令之新建一个用户!
  10. c语言作业模块化设计具体,C语言程序模块化设计.doc
  11. PHP中的e标签和em标签一样吧,html em标签的作用
  12. matlab 最小二乘法拟合_最小二乘法辨识1阶离散传递函数
  13. Raki的统计学习方法笔记0xF(15)章:奇异值分解
  14. android 屏幕密度160与320换算,Android屏幕密度(Density)和分辨率的关系
  15. 黑客概念与文化(课程笔记)
  16. CnPack实用功能推荐
  17. Apollo感知解析之MinBox障碍物边框构建
  18. Python时间序列建模基础
  19. 中国自动化学科发展及控制界名人简介
  20. 基于51单片机简易数字示波器Proteus仿真

热门文章

  1. Flash CS3:FLV视频短片我来做!
  2. win11中利用IIS10搭建asp网站
  3. 计算机机房设备使用管理,机房设备使用管理制度
  4. ChinaSkills-网络系统管理001(网络应用赛项改革)
  5. 自学c语言需要什么要求,学习c语言需要什么基础
  6. python 运动模拟_Python中的几何布朗运动模拟
  7. 借用传感器用计算机测速度题,传感器原理及应用试题库(已做)
  8. Elasticsearch:IP 数据类型及其搜索
  9. Windows Server 2008 (IIS)
  10. 代理模式代码举例(java语言版)