silverlight 2 Random 随机数解决方案

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

    }

时间: 2024-09-22 01:05:46

silverlight 2 Random 随机数解决方案的相关文章

Random(随机数)

问题描述 我想用随机数去实现两个用户的比较我已经有个用户类,我想用随机(Random)方法去实现这个类里面的两个用户比较各位大侠有好点的建议吗? 解决方案 解决方案二:没看懂,求详细说明解决方案三:详细说明一下问题解决方案四:该回复于2011-04-06 14:59:34被版主删除解决方案五:实现Compareable或继承Comparator,方法里用随机数比较.大概写了下:(未测试)publicintcompareTo(Useru2){if(u2!=null&&this.class==

javascript中Math.random()随机数的例子

定义和用法 random() 方法可返回介于 0 ~ 1 之间的一个随机数. 语法 Math.random() 返回值 0.0 ~ 1.0 之间的一个伪随机数. 打开Node,进入终端命令行模式,输入Math.random():   >Math.random()   0.436846193857491 结果是不是依旧如同往常一样稀松平常的小于1的一个伪随机数跳了出来呢. 这个时候,如果别人问你,还有什么其他方案可以生成随机数么,你会想到神马呢. 逝者如斯夫,不舍昼夜. 如果你继续在终端里输入ne

Silverlight,WCF传递DataTable解决方案

Silverlight与WCF(WebService)交互多以实体类的形式进行数据传递.但对于报表平台这 样的形式不可取,因为你不能预知客户在设计报表时选中了哪个数据库的哪些表的哪些字段 .因此传统.Net中的DataTable是一种很好的解决方案.下面讨论笔者的一种解决方案.欢迎 各位拍砖. 整个解决方案的思想就是将DataTable分为元数据(MetaData).数据(Data)两部分进行传 递.MetaData不用说就是当前DataTable的列信息(例如列名,数据类型,最大长度等等).至

javascript Math.random()随机数函数_基础知识

random函数语法 Math.random(); random函数参数 无参数 random函数返回值 返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1) random函数示例 document.write(Math.random()); 返回随机数 document.write(Math.random()*(20-10)+10); 返回10-20的随机数 document.write(Math.random()*(n-m)+m); 返回指定范围的随机数(m-n之间)的公式

基于Cairngorm的Silverlight开发 - part5

搭建完整的Cairngorm项目 到这里已经都知道了如何独立的运用Cairngorm中两个特殊的部分,ModelLocator模型和View视图,现在需要的就是建立一个完成的Cairngorm项目了.之前只用到了一种设计模式ModelLocator的单件模式,现在要用到了另一种设计模式命令模式,这个模式也是Cairngorm的核心部分. 一个Cairngorm项目一般是这个样子: 一个Page.xaml -(***.xaml.cs这里我就都不提了)程序的入口 一个App.xaml -用来存放Si

shell脚本如何获取随机数random

用C提供的取随机数的方法srand和rand, 前者是给后者设置随机数种子seed. int rnd_num = 0; srand(seed);       // time(NULL) 通常使用时间做种子 rnd_num = rand();  // 产生随机数 产生种子的方法: 1. 使用日期时间 时间作为种子很简单,取当前日期和时间,但是存在一个陷阱:当多台机器并发执行产生随机数时,出现相同随机数的概率非常高.不推荐这种方式 2. 使用$RANDOM 需要系统支持,通过echo来检测, 打印出

java随机数类Random简介

Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法.它可以产生int.long.float.double以及Goussian等类型的随机数.这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机数. 类Random中的方法十分简单,它只有两个构造方法和六个普通方法. 构造方法: (1)public Random() (2)public Random(long seed) Java产生随机数需要有一个基值s

php源码分析之DZX1.5随机数函数random用法_php技巧

本文实例讲述了php源码分析之DZX1.5随机数函数random用法.分享给大家供大家参考.具体如下: <?php /** * @param int $length: 随机数长度 * @param int $numeric: 0或非0,其中0表示随机数由全数字组成,非0表示随机数由全字母组成 * @return string: 返回生成的随机数 */ function random($length, $numeric = 0) { $seed = base_convert(md5(microti

在javascript中随机数 math random如何生成指定范围数值的随机数_javascript技巧

今天有朋友向我请教:JavaScript 怎么生成指定范围数值随机数.Math.random() 这个方法相信大家都知道,是用来生成随机数的.不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数.这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数. w3school的random()教程 定义和用法 random() 方法可返回介于 0 ~ 1 之间的一个随机数. 语法 Math.random() 返回值 0.0 ~ 1.0 之间的一个伪随机