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

    这种方式比较好。

  • 相关阅读:
    日期计算
    普通二叉树转换成搜索二叉树
    每周行情
    virtualbox安装增强功能时【未能加载虚拟光盘】
    linux实用命令之如何移动文件夹及文件下所有文件
    Linux文件夹文件创建、删除
    php 克隆 clone
    function_exists (),method_exists()与is_callable()的区别
    webgrind安装使用详细说明
    windows下redis的安装配置和php扩展使用phpredis
  • 原文地址:https://www.cnblogs.com/lorgine/p/2133767.html
Copyright © 2011-2022 走看看