经典论坛's Archiver

nasawz 发表于 2008-6-17 01:22

silverlight 2 Random 随机数解决方案

[code]using System;
using System.Security.Cryptography;

    public class RNG
    {
        private static RNGCryptoServiceProvider rngp = new RNGCryptoServiceProvider();
        private static byte[] rb = new byte[4];

        /// <summary>
        /// 产生一个非负数的乱数
        /// </summary>
        public static int Next()
        {
            rngp.GetBytes(rb);
            int value = BitConverter.ToInt32(rb, 0);
            if (value < 0) value = -value;
            return value;
        }
        /// <summary>
        /// 产生一个非负数且最大值在 max 以下的乱数
        /// </summary>
        /// <param name="max">最大值</param>
        public static int Next(int max)
        {
            rngp.GetBytes(rb);
            int value = BitConverter.ToInt32(rb, 0);
            value = value % (max + 1);
            if (value < 0) value = -value;
            return value;
        }
        /// <summary>
        /// 产生一个非负数且最小值在 min 以上最大值在 max 以下的乱数
        /// </summary>
        /// <param name="min">最小值</param>
        /// <param name="max">最大值</param>
        public static int Next(int min, int max)
        {
            int value = Next(max - min) + min;
            return value;
        }

    }[/code]

vvsamln 发表于 2008-6-17 15:20

只是一个算法。。不知道楼主想要实现什么功能呢

KAI3000 发表于 2008-6-18 11:21

跟flash一样防止缓存吧

cncolder 发表于 2008-7-5 18:05

var rand = new System.Random();
rand.Next(1, 10);

系统自带的不好用么?

nasawz 发表于 2008-7-6 18:51

实际做项目的时候用一下就知道了.  他不是每一次都能随机的.
你可以看看我在cnblogs上边发的文章.

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.