c rand srand-[请教]C伪随机函数rand() 的相关问题

问题描述

[请教]C伪随机函数rand() 的相关问题

/* rand0.c ---产生随机数*/
/*使用ANSI C 可移植算法*/
static unsigned long int next=1; //种子
int rand0(void)
{
next=next*1103515245+123456;
return (unsigned int)(next/65536)%32768;
}
void srand0(unsigned int seed)
{
next=seed;
}
/*r_drive0.c 测试rand0() srand0()函数*/
#include
#include
extern void srand0(unsigned int);
extern int rand0(void);

int main(void)
{
int count;
srand0((unsigned int)time(0));
for(count=0;count
printf("%dn",rand0());
return 0;
}
/////////////////////////////////////////////////////////////////////////////////
1> 为什么rand0() 函数里面的那2个公式是可移植算法?
2> static unsigned long int next; 是unsigned long 类型的,为什么srand0((unsigned int )time(0))
参数要指派成unsigned int 类型,而不是unsigned long 类型,难道为了增加移植性?

解决方案

1.因为对同样位数的CPU来说,加减乘除,包括取模,他们的结果是一定的。
2.这个是习惯用法吧。好像都是这样用的,没有一定的原因吧、即使把这个srand和rand封装成库,这个time(0)也不在库里面,和移植性应该没有啥关系

时间: 2024-10-28 15:39:08

c rand srand-[请教]C伪随机函数rand() 的相关问题的相关文章

c语言-[请教] 关于ANSIC [可移植]伪随机函数rand() 的问题。。。

问题描述 [请教] 关于ANSIC [可移植]伪随机函数rand() 的问题... /* rand0.c ---产生随机数*/ /*使用ANSI C 可移植算法*/ static unsigned long int next=1; //种子 int rand0(void) { next=next*1103515245+123456; return (unsigned int)(next/65536)%32768; } void srand0(unsigned int seed) { next=s

一张图看懂阿里云网络产品[五]负载均衡SLB

负载均衡SLB是对多台云服务器进行流量分发的服务.它可以通过流量分发扩展应用系统的服务能力,通过消除单点故障提升应用系统的可用性.通过设置虚拟IP,将位于同一地域的多台云服务器虚拟成一个高性能.高可用的应用服务池.根据指定的方式,将来自客户端的网络请求分发到云服务器池中. 系列文章持续更新中,敬请关注 [一]网络产品概览 [二]VPC [三]EIP [四]NAT网关 [五]负载均衡SLB [六]共享带宽 [七]共享流量包 [八]高速通道 [九]VPN网关 [十]云托付 [十一]全球加速

一张图看懂阿里云网络产品[七]共享流量包

共享流量包是BGP公网流量的预付费套餐,价格比后付费流量更低,并支持闲时峰谷流量包,能大大降低用户的BGP公网流量成本,是企业必备的省钱利器.本图将为各位全面讲解共享流量包产品. 系列文章持续更新中,敬请关注 [一]网络产品概览 [二]VPC [三]EIP [四]NAT网关 [五]负载均衡SLB [六]共享带宽 [七]共享流量包 [八]高速通道 [九]VPN网关 [十]云托付 [十一]全球加速

一张图看懂阿里云网络产品[六]共享带宽

系列文章持续更新中,敬请关注 [一]网络产品概览 [二]VPC [三]EIP [四]NAT网关 [五]负载均衡SLB [六]共享带宽 [七]共享流量包 [八]高速通道 [九]VPN网关 [十]云托付 [十一]全球加速

[译]安卓界面导航初识

本文讲的是[译]安卓界面导航初识, 原文地址:A Primer on Android navigation 原文作者:Liam Spradlin 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:horizon13th 校对者:SumiMakito, laiyun90 安卓界面导航初识 界面中任何引领用户跳转于页面之间的媒介 -- 这便是导航 当你的应用中的两个不同页面产生联系时,导航便由此而生.跳转链接(不论从哪跳到哪)便是页面间传递用户的媒介.创建导

[译]假如 Mac 上也有 iOS 应用?

本文讲的是[译]假如 Mac 上也有 iOS 应用?, 假如 Mac 上也有 iOS 应用,世界将会怎样? 没有人专门为 Mac 开发应用,Slack 有专门的 iOS 版本,放在 iPad 上的体验非常好,接上 smart keyboard 以后,你会发现还可以方便的使用快捷键.而且,在应用上无限下滑的体验甚至超过了他们本身的网页端,甚至于我从来没有看到过一个"加载中"的页面.这体验如果能够放到桌面端那是再好不过了,但是他们没有这么做,他们仅仅只是把他们的网页放到了一个 app-la

一张图看懂阿里云网络产品[一]网络产品概览

 一张图看懂网络产品系列文章,让用户用最少的时间了解网络产品,本文章是第一篇 网络产品概览 系列文章持续更新中,敬请关注 [一]网络产品概览 [二]VPC [三]EIP [四]NAT网关 [五]负载均衡SLB [六]共享带宽 [七]共享流量包 [八]高速通道 [九]VPN网关 [十]全球加速 [十一]云托付 目前阿里云网络产品共有10个,包括专有网络VPC,负载均衡SLB,NAT网关,EIP,共享流量包,共享带宽,高速通道,VPN网关,全球加速.这么多产品有什么关联呢?为了便于大家理解,我们可以

[译]更好的表单设计: 每一页,一件事(实例研究)

本文讲的是[译]更好的表单设计: 每一页,一件事(实例研究), 原文地址:Better Form Design: One Thing Per Page (Case Study) 原文作者:Adam Silver 译文出自:掘金翻译计划 译者:horizon13th 校对者:LeviDing, laiyun90 更好的表单设计: 每一页,一件事(实例研究) 2008 年,我在 Boots.com 工作时,团队提出需求,要设计当时最流行的单页表单进行付款操作,主要技术有折叠选项卡,AJAX,客户端验

[译]某些2017年的 UX 趋势啊,扎心了

本文讲的是[译]某些2017年的 UX 趋势啊,扎心了, 原文地址:Terrible UX Trends for 2017 原文作者:Christian Beck 译文出自:掘金翻译计划 译者:Ruixi 校对者:L9m,bobmayuze 某些2017年的 UX 趋势啊,扎心了 前方高能,非战斗人员请迅速撤离 热门的 UX 新技术热点 比灰更灰 Instagram 用黑与白的重设计颠覆设计界.我们好像从未见过全由这两种颜色搭配的设计. Instagram 3.0 今年的主题是将灰色进行到底.我