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);
                }
  • 相关阅读:
    整数反转
    最长公共前缀
    罗马数字转整数
    单点登录
    VMware Workstation虚拟机密钥
    Pytest 用例内部执行顺序
    判断是不是回文数
    python端口IP字符串是否合法
    python求二叉树深度
    有两个字符串类型的数字,实现一个方法将它们进行相加,并返回相加后的数值。
  • 原文地址:https://www.cnblogs.com/oiliu/p/7753096.html
Copyright © 2011-2022 走看看