zoukankan      html  css  js  c++  java
  • Random随机数种子生成,减少生成重复随机数的可能

    我们都知道使用Random可以生成随机数,默认的无参的构造函数New Random()。使用与时间相关的默认种子值,初始化 System.Random 类的新实例。

    这种方式生成随机数时重复的概率很大。可以传入一个种子,用来计算伪随机数序列起始值的数字。

            /// <summary>
            /// 创建加密随机数生成器 生成强随机种子
            /// </summary>
            /// <returns></returns>
            private static int GetRandomSeed()
            {
                byte[] bytes = new byte[4];
                System.Security.Cryptography.RNGCryptoServiceProvider rng
                    = new System.Security.Cryptography.RNGCryptoServiceProvider();
                rng.GetBytes(bytes);
                return BitConverter.ToInt32(bytes, 0);
            }
            private static int GenerateRandom()
            {
                int seed = GetRandomSeed();
    
                return new Random(seed)
                    .Next(Int32.MaxValue);
            }

    RNGCryptoServiceProvider 类

    使用加密服务提供程序 (CSP) 提供的实现来实现加密随机数生成器 (RNG)。

  • 相关阅读:
    日总结07
    Flask使用json或jsonify返回响应的数据
    日总结06
    tensorflow 代码流程02
    日总结05
    题解 P1505 [国家集训队]旅游
    数学期望
    常用软件
    HTMLHelper
    DateHelper(辅助类)
  • 原文地址:https://www.cnblogs.com/tanpeng/p/7074711.html
Copyright © 2011-2022 走看看