C/C++ 根据不同复杂度生成随机数 (关键字:Random、Rand、seed)

本文探讨了如何在C/C++中根据不同的复杂度需求生成随机数,详细解析了Random.cpp中的实现,并提供了测试代码示例。通过理解和使用文章中的方法,可以更好地掌控随机数生成的效率。
摘要由CSDN通过智能技术生成
Random.h中的代码:
#pragma once

class CRandom
{
public:
	CRandom(VOID);
	virtual ~CRandom(VOID);

public:
	BOOL Init(UINT seed);
	INT Rand(VOID);
	INT SimpleRandom(VOID);
	INT ComplexRandom(VOID);

private:
	UINT mSeed;
};

Random.cpp中的代码:

#include "Random.h"

CRandom::CRandom( VOID )
{

}

CRandom::~CRandom( VOID )
{

}

//添加基本的整数
BOOL CRandom::Init( UINT seed )
{
	mSeed = seed;
	return TRUE;
}

//获取一般性的值
INT CRandom::Rand( VOID )
{
	return (((mSeed = mSeed*214013L+2531011L)>>16)&0x7FFF);
}

//进行简单的运算,获取最小限度的Random值
INT CRandom::SimpleRandom( VOID )
{
	return (((mSeed = mSeed+2531011L)>>3)&0x7FFF);
}

//通过复杂的运算公式获取Random值
INT CRandom::ComplexRandom( VOID )
{
	UINT next = mSeed;
	INT result;

	next *= 1103515245;
	next += 12345;
	result = (UINT)(next/65536)%2048;

	next *= 1103515245;
	next +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值