zoukankan      html  css  js  c++  java
  • 【C#】绝对随机数

    System.Security.Cryptography.RNGCryptoServiceProvider

            private static int Next(int numSeeds, int length)
            {
                // Create a byte array to hold the random value.   
                byte[] buffer = new byte[length];
                // Create a new instance of the RNGCryptoServiceProvider.   
                System.Security.Cryptography.RNGCryptoServiceProvider Gen = new System.Security.Cryptography.RNGCryptoServiceProvider();
                // Fill the array with a random value.   
                Gen.GetBytes(buffer);
                // Convert the byte to an uint value to make the modulus operation easier.   
                uint randomResult = 0x0;//这里用uint作为生成的随机数   
                for (int i = 0; i < length; i++)
                {
                    randomResult |= ((uint)buffer[i] << ((length - 1 - i) * 8));
                }
                // Return the random number mod the number   
                // of sides.  The possible values are zero-based   
                return (int)(randomResult % numSeeds);
            }

    --

                for (int i = 0; i < 20; i++)
                {
                    byte[] randomBytes = new byte[8];
                    System.Security.Cryptography.RNGCryptoServiceProvider rngServiceProvider = new System.Security.Cryptography.RNGCryptoServiceProvider();
                    rngServiceProvider.GetBytes(randomBytes);
                    int result = BitConverter.ToInt32(randomBytes, 0);
                    result = System.Math.Abs(result);  //求绝对值
                    Console.WriteLine(result);
                }
  • 相关阅读:
    pc端布局方式
    idea中Git操作
    原型和原型链
    BFC块级格式上下文
    开发环境和生产环境
    webpack-dev-server报错
    es6类的继承
    js文件上传
    es6 字符串和数字常用方法
    es6 set容器和map容器
  • 原文地址:https://www.cnblogs.com/oiliu/p/7753096.html
Copyright © 2011-2022 走看看