一、什么是伪随机数:
伪随机数是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。
二、为什么要使用伪随机数:
当网络游戏需要通过随机数来播放随机效果时,如果使用真的随机数,则会出现不同客户端随机效果不一样的问题。那么这个时候就需要伪随机数来实现随机效果。
三、直接上代码:
private uint m_seed = 0;
/// <summary>
/// 通过种子获取随机数
/// 值是0到1之间
/// </summary>
/// <returns></returns>
public float GetRandomBySeed()
{
long tempSeed = (m_seed * 10807L) & 0x7fffffffL;
m_seed = (uint)tempSeed;
float result = (float)m_seed / 0x7fffffffL;
return result;
}
/// <summary>
/// 返回一个介于最小值[包括]和最大值[排除]之间的随机整数
/// min >= max 时返回 0
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <returns></returns