第 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. 掌握4个基本点 不被云计算忽悠
  2. 优化春运服务 北京铁路局在车站设置哺乳室等设施
  3. php mysql集群_PHP如何访问数据库集群
  4. Idea控制台中文乱码解决方案
  5. 分类与监督学习,朴素贝叶斯分类算法
  6. 圆环划痕检测halcon
  7. bigdecimal js 判断等于0_为啥阿里禁用BigDecimal的equals方法做等值比较
  8. 设计模式一网打尽,40余篇文章带你领略设计模式之美
  9. angular路由模块(二)
  10. Python实现指定GitHub项目下载器【项目下载+GUI可视化界面操作】
  11. wpf listbox绑定不跟新_苦逼的程序员,Python又有新版本3.9,跟还是不跟?
  12. 【转】为什么火线有电压,零线没有电压呢?
  13. 哨兵-2 Sentinel-2 数据下载(USGS)
  14. 与rasp的初次心动
  15. 100个数据分析常用指标和术语
  16. jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等
  17. docker白话版(一)简介+使用命令
  18. python+webdriver学习鼠标键盘事件以及定位元素
  19. html使用阿里图标库(iconfont)制作字体图标
  20. Jmeter+ant+jenkins 实现接口自动化构建

热门文章

  1. 腾讯笔试题 画家小Q
  2. 【模电笔记】6.集成运算放大器应用电路
  3. 软件工程c语言课程设计的作用,C语言课程设计指导书2016版HNUST
  4. 哔哩哔哩助手 for Mac说明书
  5. 数字信号处理 实验一 时域采样与频域采样【实验报告】
  6. PLC十字路口交通灯设计
  7. codesmith mysql 模板_CodeSmith for MySQL template
  8. 简单原生js代码实现下拉菜单
  9. 百度离线地图瓦片下载器
  10. python程序画中国围棋棋盘