silverlight 2 Random 随机数解决方案

本文介绍了一个使用 C# 和 System.Security.Cryptography 命名空间中的 RNGCryptoServiceProvider 类来生成高质量随机数的类。该类提供了 Next() 方法用于生成指定范围内的随机整数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

    }

转载于:https://www.cnblogs.com/nasa/archive/2008/06/17/1223455.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值