zoukankan      html  css  js  c++  java
  • 关于随机数

    通常情况下,很多人喜欢用一下的方式产生随机数,然后得到的随机数都是一样的,代码如下。
                StringBuilder str = new System.Text.StringBuilder();
                for (int i = 0; i < 600; i++) {
                    str.AppendLine((new Random().NextDouble()*100).ToString());
                }

    后来发现稍微改一下,就可以实现真正的随机

    Random rd = new Random();
                StringBuilder str = new System.Text.StringBuilder();
                for (int i = 0; i < 600; i++) {
                    str.AppendLine((rd.NextDouble()*100).ToString());
                }

    只有一点点的变化,就可以实现产生不同的随机数。

    附上另外一种方法:

    public static double GetRandom()
            {
                long tick = DateTime.Now.Ticks;
                Random ran = new Random(GetRandomSeed());
                return ran.NextDouble();
            }

            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);
            }

    发现还是:

    Random rd = new Random();
                StringBuilder str = new System.Text.StringBuilder();
                for (int i = 0; i < 600; i++) {
                    str.AppendLine((rd.NextDouble()*100).ToString());
                }

    这种方式比较好。

  • 相关阅读:
    经典小故事
    清晨六问
    ui相关书籍
    ui设计书籍推荐
    生成器
    函数之装饰器
    函数之闭包
    函数之作用域的查找顺序
    函数之命名空间/名字空间/名称空间
    内置函数
  • 原文地址:https://www.cnblogs.com/lorgine/p/2133767.html
Copyright © 2011-2022 走看看