1. 基本函数

在C语言中取随机数所需要的函数是:

int rand(void);

void srand (unsigned int n);

rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件:

#include

2. 使用方法

rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。

srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。

for (int i=0; i<10; i++)

{

printf("%d ", rand()%10);

}

每次运行都将输出:1 7 4 0 9 4 8 8 2 4

srand(1);

for (int i=0; i<10; i++)

{

printf("%d ", rand()%10);

}

每次运行都将输出:1 7 4 0 9 4 8 8 2 4

例2的输出结果与例1是完全一样的。

srand(8);

for (int i=0; i<10; i++)

{

printf("%d ", rand()%10);

}

每次运行都将输出:4 0 1 3 5 3 7 7 1 5

该程序取得的随机值也是在[0,10)之间,与srand(1)所取得的值不同,但是每次运行程序的结果都相同。

srand((unsigned)time(NULL));

for (int i=0; i<10; i++)

{

printf("%d ", rand()%10);

}

该程序每次运行结果都不一样,因为每次启动程序的时间都不同。另外需要注意的是,使用time()函数前必须包含头文件time.h。

3. 注意事项求一定范围内的随机数。

如要取[0,10)之间的随机整数,需将rand()的返回值与10求模。

randnumber = rand() % 10;

那么,如果取的值不是从0开始呢?你只需要记住一个通用的公式。

要取[a,b)之间的随机整数(包括a,但不包括b),使用:

(rand() % (b - a)) + a伪随机浮点数。

要取得0~1之间的浮点数,可以用:

rand() / (double)(RAND_MAX)

如果想取更大范围的随机浮点数,比如0~100,可以采用如下方法:

rand() /((double)(RAND_MAX)/100)

其他情况,以此类推,这里不作详细说明。

当然,本文取伪随机浮点数的方法只是用来说明函数的使用办法,你可以采用更好的方法来实现。

C语言中生产随机数 rand&lpar;&rpar;函数

参考资料:C语言中产生随机数 一:如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间.RAND_MAX定义在stdl ...

C语言基础&lpar;11&rpar;-随机数发生器

一. rand() rand是一个C语言库函数,功能是生成一个随机数.rand需要一个不同的种子,才能生成不同的随机数. 二. srand(int seed) rand需要一个不同的种子,才能生成不同 ...

C语言如何产生随机数

1.基本函数 在C语言中取随机数所需要的函数是: int rand(void); void srand(unsigned int n); rand()函数和srand()函数被声明在头文件stdlib ...

C语言之实现随机数产生算法

随机数,也就是在不同的时刻产生不同的数值.在UNIX操作系统和window的操作系统上,我们知道有一个函数rand,它就是用来产生随机数的函数API接口,那么它的原理如何实现? 如果约定a1=f(se ...

c语言: 生成随机数

#include srand((unsigned)time(NULL)); for(int i=0;i<10;i++) { //printf("%d\n& ...

go语言基础之随机数的使用

1.随机数的使用 示例1:   如果种子参数一样,每次运行程序产生的随机数都一样 package main //必须有个main包 import "fmt" import &quo ...

C语言 &&num;183&semi; 明明的随机数

算法训练 明明的随机数   时间限制:1.0s   内存限制:256.0MB      问题描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的 ...

Go语言 之产生随机数

package main import ( "fmt" "math/rand" "strconv" "time" ) f ...

C语言中如何产生随机数

今天看到一段小程序 ,里面用到随机数.才发现在C语言中产生随机数不像matlab中那么简单. C中也有rand()函数,但是rand()函数产生的数不是真正意义上的随机数,是一个伪随机数,是根据一个数 ...

【C】漫谈C语言随机数

来说说C语言如何产生随机数. 有人会说这不简单?time() + srand() + rand() 3个函数不就OK了吗? 是的,不过,我们还是来看看原理比较好,也就是随机数是如何产生的. 这不无聊. ...

随机推荐

JS 预解释相关理解

1.JS中的内存空间分为两种:栈内存.堆内存 栈内存:提供JS代码执行的环境;存储基本数据类型的值; ->全局作用域或者私有的作用域其实都是栈内存 堆内存:存储引用数据类型的值(对象是把属性名和 ...

【原】Learning Spark &lpar;Python版&rpar; 学习笔记&lpar;二&rpar;----键值对、数据读取与保存、共享特性

本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...

C&num;中Dynamic的妙用及代码重构

应用场景:检查几个表的特定字段是否为空,字段是否为空是在数据库中进行配置的.前台根据数据中字段的设置,进行动态检查. 原始人版: private string CheckFieldNull(MONTH ...

Android Service 文档

应用场景: 1  用于将后台逻辑(Service中)和UI逻辑(Activity中)进行解耦,实现Service功能的复用,为其他程序提供功能. 2  后台功能,由于Activity在进入后台时(On ...

scroll

var fScrollTopHeight = function(){ return document.documentElement&&document.documentElement ...

用TextKit实现图文混排&lpar;转载&rpar;

Textkit是iOS7新推出的类库,其实是在之前推出的CoreText上的封装,有了这个TextKit,以后不用再拿着CoreText来做累活 了,根据苹果的说法,他们开发了两年多才完成,而且他们在 ...

ubuntu 搜狗输入法 在中断失效

实测是更换了皮肤后,出现在中断输入故障,乱码.在其他界面可能是正常的,更换语言没用. killall fcitx输入法突然好了(根据网友所说,更改一堆东西貌似并没有什么用) 此时关闭输入法皮肤一切正常 ...

Centos7限速和测速

限速 wondershaper是国外人开发的一款在Linux内核下基于TC工具的对整块网卡的限度工具. 第一种安装方法 首先下载wondershaper的rpm安装包:wondershaper-1.1 ...

图像像素转换 8-bit 16-bit 32-bit游戏效果

https://www.ipcfun.com/8bit-you-xi-hua-mian-fu-yuan-3d-li-ti-tu.html https://bbs.csdn.net/wap/topics ...

CodeForces-1155D Beautiful Array

Description You are given an array \(a\) consisting of \(n\) integers. Beauty of array is the maximu ...

c语言产生32位随机数,C语言,如何产生随机数相关推荐

  1. C语言数据类型32位和64位不同

    C语言编程需要注意的64位和32机器的区别 一.数据类型特别是int相关的类型在不同位数机器的平台下长度不同.C99标准并不规定具体数据类型的长度大小,只规定级别.作下比较: 16位平台 char   ...

  2. 8位单片机(51 STC8)C语言处理32位unsigned long型数据之计算出错

    [[本文发布于https://blog.csdn.net/Stack_/article/details/129259560,未经许可禁止转载,转载须注明出处]] 一.问题描述 入门51没多久后就主攻3 ...

  3. c语言10以内位运算,C语言基础知识--位运算

    1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...

  4. 32位汇编语言学习笔记(43)-- 生成随机数

     此程序出自<Assembly Language step by step programming with linux>第12章,用于演示随机数函数的使用,共涉及两个随机数函数: v ...

  5. php抓包分析工具下载,Wireshark(抓包分析工具) V3.2.1 32位多国语言安装版

    Wireshark是一款功能强大的抓包分析工具,该Wireshark可以轻松抓取网络数据,而且使用很简单,所以有需要的朋友赶紧下载吧! 功能介绍 1.Wireshark拥有许多强大的特性 包含有强显示 ...

  6. java32位无符号数_用C语言解释32位无符号长单精度IEEE-754浮点数

    我使用的是Microchip的XC32编译器,它基于标准的C编译器 . 我正在从RS485网络上的设备读取32位值并将其存储在unsigned long中,我将其命名为DWORD . 即 typede ...

  7. 64位c语言调用32位glibc,glibc fclose源代码阅读及伪造_IO_FILE利用fclose实现任意地址执行...

    简介 最近学习了一下_IO_FILE的利用,刚好在pwnable.tw上碰到一道相关的题目.拿来做了一下,遇到了一些困难,不过顺利解决了,顺便读了一波相关源码,对_IO_FILE有了更深的理解. 文章 ...

  8. c语言左移15位,关于c语言中左移右移运算符的问题

    参照<c与指针>,在c语言中左移时,不论算术左移还是逻辑左移效果都是相同的.而且对于有符号和无符号类型执行相同的操作,即按照二进制位向左左移N位.例如: 1 clude 2 intmain ...

  9. c语言飞机借位,使用c语言实现飞机游戏

    在这里,我主要使用scanf函数和printf函数来实现一个简单的飞机游戏,并且通过函数的形式实现. 整体思路:main函数 在这里,主要是使用一个简易的游戏框架,来减小开发游戏时的难度int mai ...

最新文章

  1. Learn OpenGL (六):坐标系统
  2. 随机位置显示图片不重叠前端实现详细讲解附效果图,代码可直接使用
  3. NLP之ASR:语音识别技术(Automatic Speech Recognition)的简介、发展历史、案例应用之详细攻略
  4. Android之用HttpURLConnection断点下载谷歌云存储(google cloud storage)文件
  5. 武大计算机专业湖北录取分数线,武汉大学2020年本科一批分专业录取分数统计(湖北省)...
  6. 能够使用StringBuilder类的常用方法操纵字符串 1215
  7. Spring-tx-TransactionInfo
  8. python管道_python 多进程之管道实例(模板)
  9. Spring Cloud随记---分布式配置中心初探--一个单节点的配置中心
  10. 2021数学建模A题详细思路
  11. 必备iOS设备解锁工具:iToolab UnlockGo for Mac(4.1.4中文)
  12. Matlab中xlsread 函数读取excel表格数据或者字符串
  13. webpack4.0核心概念(七)———— “devtool:source-map“
  14. 人工智能学期心得体会
  15. 微信群发消息注意事项
  16. 第四章 线程切换与调度——操作系统的发动机
  17. 实验8 脉冲宽度调制(PWM)模块 北京化工大学 2019090034
  18. 英创力电子IPO被终止:年营收10亿 深创投与红土是股东
  19. 计算机专业英语词组,计算机专业英语词组计算机专业英语词组.doc
  20. CRM实施的目的是什么

热门文章

  1. 攻防世界-misc-warmup题解
  2. 几率大的杂乱+操作系统面试题(含答案)
  3. ARM体系结构(四)
  4. 揭开ZigBee 2006协议栈Z-Stack的”开源“面纱
  5. 无法连接app store
  6. 详解TTL和CMOS电平(转)
  7. 男的朋友和男朋友的区别
  8. Linux系统安装FSL6.0.5
  9. Xml declaration should precede all document content——问题解决
  10. 关于 myeclipse CI 无法激活的问题,