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

    这种方式比较好。

  • 相关阅读:
    59. Spiral Matrix II
    58. Length of Last Word
    57. Insert Interval
    56. Merge Intervals
    55. Jump Game
    54. Spiral Matrix
    53. Maximum Subarray
    52. N-Queens II
    51. N-Queens
    java封装学习
  • 原文地址:https://www.cnblogs.com/lorgine/p/2133767.html
Copyright © 2011-2022 走看看